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 7 du niveau 1
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 8 du niveau 1
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_décoré)
Créer un affichage ou chaque caractère du mot devient un underscore (_) et un espace est placé entre chaque underscore _ , pour coyote, l'affichage sera:
Exercice 9 du niveau 1
le_mot= ""
for x in range(10):
le_mot += "_" + " "
print(le_mot)
# ajoutons le caractère a en 5ème position,
# on ne change rien dans le_mot du début inclus jusqu'au caractère 5 exclus ce qui se note le_mot[:5]
# on concatène ensuite le_mot[:5] avec le caractère a puis avec le reste du mot de la position 6 à la fin ce qui se note le_mot [6:]
le_mot = le_mot[:5] + 'a' + le_mot[6:]
Afficher le_mot
Selon le même principe ajouter le caractère r en 8eme position
Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit