Immutabilité 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 longues).
Aucune modification sur place
Il est possible de lire les caractères par indice, mais il n'est pas possible de leur affecter une nouvelle valeur.
123456s = "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 de caractères 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
L’enchaînement est possible, 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
« Modification » par création d'une nouvelle chaîne
Utilisation de la découpe, de replace ou de la concaténation pour produire une nouvelle valeur.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
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 fragments puis à effectuer une seule concaténation avec join :
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)
Vous découvrirez d'autres méthodes de concaténation 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 est nécessaire d’assembler une longue chaîne à partir de nombreux petits morceaux. Quelle est la recommandation ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.45
Immutabilité 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 longues).
Aucune modification sur place
Il est possible de lire les caractères par indice, mais il n'est pas possible de leur affecter une nouvelle valeur.
123456s = "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 de caractères 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
L’enchaînement est possible, 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
« Modification » par création d'une nouvelle chaîne
Utilisation de la découpe, de replace ou de la concaténation pour produire une nouvelle valeur.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
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 fragments puis à effectuer une seule concaténation avec join :
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)
Vous découvrirez d'autres méthodes de concaténation 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 est nécessaire d’assembler une longue chaîne à partir de nombreux petits morceaux. Quelle est la recommandation ?
Merci pour vos commentaires !