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