La boucle for
Nous pouvons itérer sur :
une chaîne de caractères de longueur connue,
une liste de longueur encore connue,
Ou encore répéter n
fois une action.
Méthode : Itérer sur une chaîne de caractères
Le programme suivant
for k in 'NSI':
print(k)
va afficher dans le terminal ceci :
N
S
I
La variable k
prend donc successivement toutes les lettre de la chaîne de caractère "NSI"
.
Pour chaque valeur de k
, la ou les instruction(s) situées de manière indentée sous la ligne du for
seront exécutées.
Variable muette
Que donne le script suivant :
for m in 'NSI':
print("bonjour")
Dans cet exercice, la variable de boucle m
est muette : elle n'apparaît dans les instructions indentées sous le for
.
La variable m
prend successivement les valeurs 'N
, 'S'
et 'I'
, mais on ne la voit pas.
Fondamental : Nom de variable muette
Lorsque la variable de boucle est muette et ne sert qu'à effectuer n
fois la même action, on utilise souvent le caractère _
(appelé underscore) comme variable de boucle.
Il faut le comprendre comme un avertissement au lecteur du code : « cette boucle ne sert qu'à faire n
fois la même chose »
Fondamental : L'indentation
L'indentation est primordiale en Python : c'est elle qui indique les blocs de code. Dans d'autres langages, ils peuvent être délimités par des accolades {
et }
.
Dans une boucle, tout ce qui sera indenté sous le for
sera répété un certain nombre de fois. Puis le code continuera : on dit qu'on sera sorti de la boucle.
Observez la différence entre l'exécution des codes suivants :
for m in 'NSI':
print("bonjour")
print("au revoir")
for m in 'NSI':
print("bonjour")
print("au revoir")
Attention : Attention à la syntaxe !
Quand vous écrivez une boucle for ... in ...
, veillez bien à :
finir la ligne du
for
par les deux points:
indenter sous le
for
les instructions qui doivent être répétées.💡 Si l'indentation ne s'est pas faite automatiquement après appui sur la touche
Entrée
, c'est que vous avez oublié les:
.
Méthode : Itérer sur une liste
Prenons un exemple avec une liste de jours de semaine :
for jour in ["lundi", "mardi", "mercredi", "jeudi", "vendredi"]:
print("je vais au lycée le", jour)
Le programme va nous afficher ceci :
je vais au lycée le lundi
je vais au lycée le mardi
je vais au lycée le mercredi
je vais au lycée le jeudi
je vais au lycée le vendredi
Généralement, la liste sera stockée dans une variable au préalable :
semaine = ["lundi", "mardi", "mercredi", "jeudi", "vendredi"]
for jour in semaine:
print("je vais au lycée le", jour)
Répéter n fois la même action
Pour répéter 100 fois la même instruction, nous n'allons pas chercher des chaînes de caractères ou des listes de 100 lettres !
Pour cela, nous allons utiliser la fonction range()
dans notre boucle for
. Détaillons range()
en page suivante.