LANGAGE PYTHON
Particularité des chaînes de caractères
Une chaîne de caractère est un objet de type string qui représente un ou plusieurs caractères que l'on peut représenter avec un ordinateur, Python3 utilise le code UTF-8 pour représenter en interne les caractères avec des nombres binaires. Pour différentier un objet chaîne de caractères d'une variable, l'objet chaîne de caractères est entouré d'apostrophes simples ou doubles dans le code, par exemple: "a" ou 'a', 'bonjour' ou "bonjour" sont des objets chaîne de caractères.
Lorsque l'objet est composé de plusieurs caractères, chaque caractère est indicé dans la chaîne, si on associe l'objet à une variable, on peut accéder à chaque caractère individuellement avec le nom de la variable et l'indice, selon le principe nom_variable[indice].
Exemples:
une_chaine = "bonjour"
print( une_chaine[0]) # va afficher b le premier caractère de l'objet chaîne associé à la variable une_chaine
print( une_chaine[1]) # va afficher o le deuxième caractère de l'objet chaîne associé à la variable une_chaine
On peut connaitre le nombre de caractères d'une chaîne avec la fonction len(..) qui renvoie le nombre de caractères de la chaîne passée en paramètre.
une_chaine = "bonjour"
print( len(une_chaine) ) # va afficher 7 le nombre de caractères de l'objet associé à la variable
On peut aussi récupérer des parties d'un objet chaîne pour les associer à une variable ou les afficher:
une_chaine = "bonjour"
print( une_chaine [0:3] ) # va afficher du premier caractère (indice 0) jusqu'à celui d'indice 3 exclu soit: bon
print( une_chaine [1:4] ) # va afficher du deuxième caractère (indice 1) jusqu'à celui d'indice 4 exclu soit: onj
print( une_chaine [:4] ) # va afficher du début de la chaîne jusqu'à celui d'indice 4 exclu soit: bonj
print( une_chaine [0:] ) # va afficher du premier caractère jusqu'à la fin de la chaîne soit: bonjour
print( une_chaine [:] ) # va également afficher du début jusqu'à la fin de la chaîne soit: bonjour
print( une_chaine [3:] ) # va afficher du quatrième caractère (indice3) jusqu'à la fin de la chaîne soit jour
"Manipulation" de chaîne
ATTENTION, les chaînes ne sont pas muables, on ne peut pas modifier le contenu d'un objet chaîne existant, remplacer un caractère par un autre dans un objet chaîne, exemple:
une_chaine = "monjour"
# la ligne de code ci-dessous va générer une erreur car on essaie d'affecter le caractère b à la place de m dans l'objet chaîne
une_chaine [0] = 'b'
Par contre on peut créer un nouvel objet chaîne par concaténation de deux autres objets chaînes (dont éventuellement un morceau d'objet chaîne):
une_chaine = "monjour"
# le code ci-dessous va générer l'objet chaîne "bonjour" et l'associer à la variable nouvelle_chaine:
nouvelle_chaine = 'b' + une_chaine[1:]
Un variable n'étant qu'une association avec un objet, on aurait pu associer la variable une_chaine à ce nouvel objet créé, ce qui donne le code:
une_chaine = "monjour"
une_chaine = 'b' + une_chaine[1:]
Parcours de chaîne:
On peut utiliser un itérateur avec le code " if un_caractère in un_objet_chaîne" pour tester si un_caractère est présent dans un_objet_chaîne, un itérateur est un curseur qui se déplace dans la chaîne, si un_caractère est pointée par le curseur, le test if.. in vaut True, exemple:
une_chaine = "bonjour"
if 'b' in une_chaine:
print("b est bien dans la chaine")
On peut utiliser un itérateur "for un_caractère in un_objet_chaîne" pour parcourir et afficher chaque lettre d'une chaîne, un itérateur est un curseur qui se déplace dans la chaîne, lors du parcours un_caractère prend la valeur pointée par le curseur:
une_chaine = "bonjour"
for c in une_chaine:
print(c, end=";")
Affiche:

On peut aussi utiliser une boucle for ... in range(... ) pour parcourir et afficher chaque lettre d'une chaîne:
une_chaine = "bonjour"
for i in range (len(une_chaine)):
print(une_chaine[i] , end=";")
Affiche également:

Exercice 1 du chapitre gestion des chaînes
Tester le code ci-dessous, préciser la différence entre i et c
une_chaine = "bonjour"
for c in une_chaine:
print(c)
for i in range(len(une_chaine)):
print(une_chaine [i] )
Exercice 2 du chapitre gestion des chaînes
Tester le code ci-dessous:
mot_à_deviner = "coyote"
le_mot_décoré = ""
le_mot_caché = ""
for x in range(len(mot_à_deviner)):
le_mot_décoré += mot_à_deviner[x] + " "
le_mot_caché += "_" + " "
print("le mot à deviner décoré avec des espaces:")
print(le_mot_décoré)
print("le mot à deviner caché avec des underscores à la place des lettres: ")
print(le_mot_caché)
2.1 recopier et compléter le tableau ci-dessous de l'évolution des variables:
VOTRE NUMEROTATION DES LIGNES DE CODE PEUT ÊTRE DIFFERENTE

Etapes |
x |
mot_à_deviner[x] |
le_mot_décoré |
le_mot_caché |
ligne 1 |
/ |
/ |
/ |
/ |
ligne 2 |
/ |
/ |
" " |
/ |
ligne 3 |
/ |
/ |
" " |
" " |
ligne 4 première itération x=0 |
0 |
mot_à_deviner[0] vaut "c" |
" " |
" " |
ligne 5 |
0 |
mot_à_deviner[0] vaut "c" |
"c " |
" " |
ligne 6 |
0 |
mot_à_deviner[0] vaut "c" |
"c " |
"_ " |
ligne 4 deuxième itération x=1 |
1 |
mot_à_deviner[1] vaut "o" |
"c " |
"_ " |
ligne 5 |
1 |
mot_à_deviner[1] vaut "o" |
"c o " |
"_ " |
ligne 6 |
1 |
mot_à_deviner[1] vaut "o" |
"c o " |
"_ _ " |
2.2 Créer un affichage ou chaque caractère d'un mot qui sera saisi interactivement au clavier devient un underscore (_) avec un espace placé entre chaque underscore _ , comme avec le code ci-dessus, pour coyote l'affichage serait:
Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit