PaliSkill
Python pour débutants

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