Agir sur les chaînes de caractères
Exemple :
Commençons par une question...
Peut-on remplacer le 4ème caractère par 't' avec maphrase[3] = 't'
?
Le résultat est sans appel, nous avons cette erreur :
Traceback (most recent call last):
File "/home/bristow/sans titre.py", line 19, in <module>
maphrase[3] = 't'
TypeError: 'str' object does not support item assignment
En français :
« L'objet Python 'str' ne prend pas en charge l'affectation d'éléments »
Fondamental : Non mutabilité des chaînes de caractères
On dit qu'une chaîne de caractères est non mutable !
Une chaîne de caractère ne peut pas être modifiée, il faudra donc « tricher » si on veut en modifier le contenu :
On crée une chaîne vide. Par exemple : chaine = ' '
On parcourt les caractères de la chaîne à modifier et on place les caractères à conserver dans la chaîne vide.
On retourne la chaîne qui n'est plus vide...
Syntaxe : Parcourir une chaîne
On peut définir une chaîne :
chaine = "Pour un test"
Pour parcourir les caractères d'une chaîne, on utilise une boucle for, il existe 2 méthodes pour cela :
#méthode 1 : la variable i prend pour valeurs chaque indice
for i in range(len(chaine)):
print(chaine[i])
#méthode 2 : la variable carac prend pour valeurs chaque caractère
for carac in chaine:
print(carac)
Exemple : Modifier une chaîne
Écrire un programme qui lit le texte entré par un utilisateur et qui renvoie le même texte dans lequel tous les « e » ont été remplacés par des « X ».
message = input('Entrer un texte : ')
reponse = '' # On initialise une chaîne vide
for carac in message: # Pour chaque caractère du message
if carac == 'e': # Si le caractère est 'e'
reponse += 'X' # On ajoute 'X' à la réponse
else: # Sinon
reponse += carac # On ajoute le caractère en cours
print('Texte modifié :', reponse)