Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Immutabilité des Chaînes | Chaînes de caractères
Types de Données en Python

Immutabilité des Chaînes

Glissez pour afficher le menu

En Python, les chaînes de caractères sont immuables : une fois créées, les caractères qu'elles contiennent ne peuvent pas être modifiés sur place. Toute "modification" effectuée crée en réalité une nouvelle chaîne. Cela est important pour la fiabilité (pas de modifications accidentelles sur place) et pour les performances (manière de construire des chaînes plus longues).

Pas de modifications sur place

Il est possible de lire les caractères par indice, mais il n'est pas possible de leur affecter une nouvelle valeur.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment

La plupart des méthodes de chaîne renvoient une nouvelle chaîne et laissent l'originale inchangée.

12345678
# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
Note
Remarque

.strip() : supprime les espaces au début et à la fin d'une chaîne.

Syntaxe : string.strip()

L’enchaînement fonctionne, mais gardez à l’esprit qu’un nouvel objet est créé à chaque étape.

123456
# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
Note
Note

.upper() : Retourne une copie de la chaîne avec tous les caractères en majuscules.

Syntaxe : string.upper()

« Modification » par création d'une nouvelle chaîne

Utilisation du découpage, de replace ou de la concaténation pour produire une nouvelle valeur.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
Note
Remarque

.replace() : renvoie une copie de la chaîne avec toutes les occurrences d'une sous-chaîne remplacées par une autre sous-chaîne.

Syntaxe : string.replace(old, new)

Construction efficace

L'utilisation répétée de + dans de grandes boucles peut être lente (de nombreuses chaînes intermédiaires). Un schéma courant consiste à collecter les éléments et à les joindre en une seule fois :

1234
# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
Note
Remarque

.join() : Concatène les éléments d'un itérable (comme une liste) en une seule chaîne, séparés par la chaîne sur laquelle la méthode est appelée.

Syntaxe : separator.join([str, str, ...])

Note
Remarque

Vous découvrirez davantage de modèles de jointure/formatage dans le prochain chapitre.

1. Quelle ligne tente de modifier une chaîne en place et provoquera une erreur ?

2. Quelle sera la sortie du code ?

3. Vous devez assembler une longue chaîne à partir de nombreux petits morceaux. Quelle est la méthode recommandée ?

question mark

Quelle ligne tente de modifier une chaîne en place et provoquera une erreur ?

Sélectionnez la réponse correcte

question mark

Quelle sera la sortie du code ?

Sélectionnez la réponse correcte

question mark

Vous devez assembler une longue chaîne à partir de nombreux petits morceaux. Quelle est la méthode recommandée ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Immutabilité des Chaînes

En Python, les chaînes de caractères sont immuables : une fois créées, les caractères qu'elles contiennent ne peuvent pas être modifiés sur place. Toute "modification" effectuée crée en réalité une nouvelle chaîne. Cela est important pour la fiabilité (pas de modifications accidentelles sur place) et pour les performances (manière de construire des chaînes plus longues).

Pas de modifications sur place

Il est possible de lire les caractères par indice, mais il n'est pas possible de leur affecter une nouvelle valeur.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment

La plupart des méthodes de chaîne renvoient une nouvelle chaîne et laissent l'originale inchangée.

12345678
# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
Note
Remarque

.strip() : supprime les espaces au début et à la fin d'une chaîne.

Syntaxe : string.strip()

L’enchaînement fonctionne, mais gardez à l’esprit qu’un nouvel objet est créé à chaque étape.

123456
# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
Note
Note

.upper() : Retourne une copie de la chaîne avec tous les caractères en majuscules.

Syntaxe : string.upper()

« Modification » par création d'une nouvelle chaîne

Utilisation du découpage, de replace ou de la concaténation pour produire une nouvelle valeur.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
Note
Remarque

.replace() : renvoie une copie de la chaîne avec toutes les occurrences d'une sous-chaîne remplacées par une autre sous-chaîne.

Syntaxe : string.replace(old, new)

Construction efficace

L'utilisation répétée de + dans de grandes boucles peut être lente (de nombreuses chaînes intermédiaires). Un schéma courant consiste à collecter les éléments et à les joindre en une seule fois :

1234
# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
Note
Remarque

.join() : Concatène les éléments d'un itérable (comme une liste) en une seule chaîne, séparés par la chaîne sur laquelle la méthode est appelée.

Syntaxe : separator.join([str, str, ...])

Note
Remarque

Vous découvrirez davantage de modèles de jointure/formatage dans le prochain chapitre.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 4
some-alt