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 :

1
Traceback (most recent call last):
2
  File "/home/bristow/sans titre.py", line 19, in <module>
3
    maphrase[3] = 't'
4
TypeError: 'str' object does not support item assignment
5

En français :

« L'objet Python 'str' ne prend pas en charge l'affectation d'éléments »

FondamentalNon 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...

SyntaxeParcourir une chaîne

On peut définir une chaîne :

1
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 :

1
#méthode 1 : la variable i prend pour valeurs chaque indice
2
for i in range(len(chaine)):
3
   print(chaine[i])
1
#méthode 2 : la variable carac prend pour valeurs chaque caractère
2
for carac in chaine:
3
   print(carac)

ExempleModifier 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 ».

1
message = input('Entrer un texte : ')
2
reponse = ''           # On initialise une chaîne vide
3
for carac in message:  # Pour chaque caractère du message
4
   if carac == 'e':    # Si le caractère est 'e'
5
      reponse += 'X'   # On ajoute 'X' à la réponse
6
   else:               # Sinon
7
      reponse += carac # On ajoute le caractère en cours 
8
print('Texte modifié :', reponse)