
La boucle for
Comme je l'ai dit précédemment, on retrouve l'instruction while dans la plupart des autres langages. Dans le C++ ou le Java, on retrouve également des instructions for mais qui n'ont pas le même sens. C'est assez particulier et c'est le point sur lequel je risque de manquer d'exemples dans l'immédiat, toute son utilité se révélant au chapitre sur les listes. Notez que, si vous avez fait du Perl ou du PHP, vous pouvez retrouver les boucles for sous un mot-clé assez proche : foreach.
L'instruction for travaille sur des séquences. Elle est en fait spécialisée dans le parcours d'une séquence de plusieurs données. Nous n'avons pas vu (et nous ne verrons pas tout de suite) ces séquences assez particulières mais très répandues, même si elles peuvent se révéler complexes. Toutefois, il en existe un type que nous avons rencontré depuis quelque temps déjà : les chaînes de caractères.
Les chaînes de caractères sont des séquences de caractères ! Vous pouvez parcourir une chaîne de caractères (ce qui est également possible avec while mais nous verrons plus tard comment). Pour l'instant, intéressons-nous à for.
L'instruction for se construit ainsi :
for element in sequence:
element est une variable créée par le for, ce n'est pas à vous de l'instancier. Elle prend successivement chacune des valeurs figurant dans la séquence parcourue.
Ce n'est pas très clair ? Alors, comme d'habitude, tout s'éclaire avec le code !
chaine = "Bonjour les ZER0S"
for lettre in chaine:
print(lettre)
Ce qui nous donne le résultat suivant :
B
o
n
j
o
u
r
l
e
s
Z
E
R
0
S
Est-ce plus clair ? En fait, la variable lettre prend successivement la valeur de chaque lettre contenue dans la chaîne de caractères (d'abord B, puis o, puis n). On affiche ces valeurs avec print et cette fonction revient à la ligne après chaque message, ce qui fait que toutes les lettres sont sur une seule colonne. Littéralement, la ligne 2 signifie « pour lettre dans chaine ». Arrivé à cette ligne, l'interpréteur va créer une variable lettre qui contiendra le premier élément de la chaîne (autrement dit, la première lettre). Après l'exécution du bloc, la variable lettre contient la seconde lettre, et ainsi de suite tant qu'il y a une lettre dans la chaîne.
Notez bien que, du coup, il est inutile d'incrémenter la variable lettre (ce qui serait d'ailleurs assez ridicule vu que ce n'est pas un nombre). Python se charge de l'incrémentation, c'est l'un des grands avantages de l'instruction for.
À l'instar des conditions que nous avons vues jusqu'ici, in peut être utilisée ailleurs que dans une boucle for.
chaine = "Bonjour les ZER0S"
for lettre in chaine:
if lettre in "AEIOUYaeiouy": # lettre est une voyelle
print(lettre)
else: # lettre est une consonne ou plus exactement, lettre n'est pas une voyelle
print("*")
ce qui donne :
*
o
*
*
o
u
*
*
*
e
*
*
*
E
*
*
*
Voilà ! L'interpréteur affiche les lettres si ce sont des voyelles et, sinon, il affiche des « * ». Notez bien que le 0 n'est pas affiché à la fin, Python ne se doute nullement qu'il s'agit d'un « o » stylisé.
Retenez bien cette utilisation de in dans une condition. On cherche à savoir si un élément quelconque est contenu dans une collection donnée (ici, si la lettre est contenue dans « AEIOUYaeiouy », c'est-à-dire si lettre est une voyelle). On retrouvera plus loin cette fonctionnalité.
Bạn đang đọc truyện trên: Truyen247.Pro