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

bookImmutabilité des Chaînes de Caractères

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 correction (pas de modifications accidentelles sur place) et pour les performances (manière de construire des chaînes plus grandes).

Pas de modifications sur place

Il est possible de lire les caractères par indice, mais il n'est pas possible de leur attribuer 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
copy

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

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

L’enchaînement est possible, mais il faut se rappeler qu’un nouvel objet est créé à chaque étape.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

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

Utiliser le découpage, replace ou la concaténation pour produire une nouvelle valeur.

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

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 puis à effectuer une seule jonction :

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Remarque

Vous découvrirez d'autres schémas de jonction et de 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. Il faut assembler une longue chaîne à partir de nombreux petits fragments. Quelle méthode est recommandée ?

question mark

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

Select the correct answer

question mark

Quelle sera la sortie du code ?

Select the correct answer

question mark

Il faut assembler une longue chaîne à partir de nombreux petits fragments. Quelle méthode est recommandée ?

Select the correct answer

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

Suggested prompts:

Can you explain why string immutability is important in Python?

What are some common mistakes people make when working with immutable strings?

Can you show more examples of efficient string building?

Awesome!

Completion rate improved to 5.26

bookImmutabilité des Chaînes de Caractères

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 correction (pas de modifications accidentelles sur place) et pour les performances (manière de construire des chaînes plus grandes).

Pas de modifications sur place

Il est possible de lire les caractères par indice, mais il n'est pas possible de leur attribuer 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
copy

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

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

L’enchaînement est possible, mais il faut se rappeler qu’un nouvel objet est créé à chaque étape.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

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

Utiliser le découpage, replace ou la concaténation pour produire une nouvelle valeur.

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

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 puis à effectuer une seule jonction :

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Remarque

Vous découvrirez d'autres schémas de jonction et de 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. Il faut assembler une longue chaîne à partir de nombreux petits fragments. Quelle méthode est recommandée ?

question mark

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

Select the correct answer

question mark

Quelle sera la sortie du code ?

Select the correct answer

question mark

Il faut assembler une longue chaîne à partir de nombreux petits fragments. Quelle méthode est recommandée ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 4
some-alt