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éthodeItérer sur une chaîne de caractères

Le programme suivant

1
for k in 'NSI':
2
    print(k)

va afficher dans le terminal ceci :

1
N
2
S
3
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 :

1
for m in 'NSI':
2
    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.

FondamentalNom 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 »

FondamentalL'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 :

1
for m in 'NSI':
2
    print("bonjour")
3
    print("au revoir")
1
for m in 'NSI':
2
    print("bonjour")
3
print("au revoir")

AttentionAttention à 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éthodeItérer sur une liste

Prenons un exemple avec une liste de jours de semaine :

1
for jour in ["lundi", "mardi", "mercredi", "jeudi", "vendredi"]:
2
    print("je vais au lycée le", jour)

Le programme va nous afficher ceci :

1
je vais au lycée le lundi
2
je vais au lycée le mardi
3
je vais au lycée le mercredi
4
je vais au lycée le jeudi
5
je vais au lycée le vendredi

Généralement, la liste sera stockée dans une variable au préalable :

1
semaine = ["lundi", "mardi", "mercredi", "jeudi", "vendredi"]
2
for jour in semaine:
3
    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.