Leçon 10 / 13 — Chapitre 4: Chaînes et listes approfondies
Chaînes immuables : pourquoi on ne peut pas modifier un caractère directement
Contrairement à une liste, dont un élément peut être remplacé directement par indexation (vu plus haut dans ce chapitre), une chaîne de caractères ne peut JAMAIS être modifiée après sa création — on dit qu'elle est immuable.
Tenter de modifier une chaîne provoque une erreur
mot = "python"
mot[0] = "P" # provoque une erreur : TypeError
Cette ligne échoue systématiquement, alors que l'équivalent sur une liste (liste[0] = valeur) fonctionne parfaitement.
La seule solution : créer une NOUVELLE chaîne
mot = "python"
mot = "P" + mot[1:]
print(mot) # "Python"
Ce code ne modifie pas la chaîne d'origine : il construit une toute nouvelle chaîne (en combinant "P" et la fin du mot d'origine grâce au slicing) et la réaffecte à la variable mot. C'est exactement ce que font les méthodes comme .upper() ou .replace() (vues plus tôt dans ce chapitre) : elles renvoient toujours une nouvelle chaîne, sans jamais modifier l'originale sur place.
Pourquoi cette distinction est importante à retenir
Comprendre que les chaînes sont immuables explique pourquoi nom.upper() seul (sans réaffectation) ne change rien à la variable nom — une confusion fréquente chez les débutants qui s'attendent à ce que la méthode modifie directement la chaîne d'origine.
À vous de jouer : essayez d'exécuter mot[0] = "P" sur une chaîne, observez l'erreur affichée, puis corrigez en construisant une nouvelle chaîne avec le slicing.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 90 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès