La boucle for
Workflow

Les boucles

Crée un compte
pour enregistrer ta progression

S'inscrire

La boucle for

La boucle for

Dans cette partie, on va voir un autre concept fondamental de la programmation, qui est la clé de l'automatisation de processus qui peuvent être très longs pour l'être humain que nous sommes, mais très rapides à exécuter pour une machine.

Ce concept, c'est le concept des boucles.

Une boucle, ça sert principalement à deux choses :

  • Pouvoir répéter une opération un certain nombre de fois. Jusqu'à présent, si on voulait exécuter une opération deux fois ou plus, on n'avait pas vraiment d'autre option que de dupliquer nos lignes de code. Avec les boucles, on va pouvoir exécuter une opération des milliers de fois, avec seulement quelques lignes de code.

  • Pouvoir parcourir des structures de données, comme les listes. On pourrait ainsi passer à travers une liste de fichiers pour les trier et supprimer les fichiers trop volumineux.

C'est un exemple parmi tant d'autres. Vous allez voir qu'une fois qu'on sait utiliser les boucles, on ne peut plus s'en passer.

Tout d'abord, il faut savoir qu'en Python, il existe deux types de boucles, les boucles for et les boucles while.

Dans cette partie, on va s'intéresser à la boucle for.

La syntaxe des boucles for

La boucle for permet principalement de parcourir des structures de données. La syntaxe d'une boucle for est assez simple et elle ressemble à la syntaxe d'une structure conditionnelle.

for element in liste:
    print(element)

On retrouve les deux points : à la fin de la ligne et l'indentation sur la ligne suivante, qui indique un bloc d'instructions. On comprend donc, avec l'indentation, que le print appartient à la boucle.

Pour définir une boucle, on utilise le mot for, qui signifie pour, et le mot in, qui signifie dans.

Si on traduit cette boucle en français ça donne :

pour element dans liste:
    print(element)

Cette boucle va donc nous permettre de parcourir une structure de données, en l'occurrence ici, une liste.

👉 element est tout simplement une variable. On peut donc l'appeler comme on veut. Elle sera automatiquement affectée, à chaque itération de la boucle, à une valeur de notre liste.

Exemples

Boucle for passant à travers une liste de nombres

Pour que vous compreniez bien comment fonctionne une boucle, on va prendre un exemple plus concret d'une boucle qui passe à travers une liste de nombres.

for i in [0, 1, 4, 7, 8]:
    print(i)

Vous voyez ici que j'ai changé le nom de ma variable et que je l'ai appelée i. C'est une convention que vous allez retrouver très souvent : quand on boucle sur une liste de nombres, on utilise généralement comme nom de variable i.

On pourrait cependant appeler cette variable element ou même jean_paul. Mais il est préférable de bien nommer vos variables et de suivre les conventions, pour que votre code reste compréhensible.

Ce qu'il faut bien comprendre avec les boucles, c'est que Python va se charger tout seul d'assigner à i la valeur de l'itération courante.

Une itération, c'est le fait de répéter un processus. Ici, on boucle sur une liste qui contient cinq nombres. On dira donc que cette boucle contient cinq itérations.

L'interpréteur Python va exécuter ce code de la façon suivante.

👉 On commence avec la première itération. Python va donc automatiquement assigner la première valeur de notre liste à la variable i qu'on va ensuite afficher avec la fonction print.

i sera donc égal à 0 et on affiche donc le nombre 0 à l'écran.

👉 L'interpréteur Python revient à la ligne du dessus, pour continuer avec la deuxième itération de la boucle, dans laquelle la variable i sera cette fois-ci égale à la deuxième valeur contenue dans la liste, dans ce cas-ci, le nombre 1. On rentre là encore une fois à l'intérieur de la boucle, et on exécute la fonction print pour afficher cette valeur à l'écran.

👉 On recommence encore une fois, avec la troisième itération, et i qui prend maintenant la valeur de 4.

👉 Quatrième itération, avec i qui est égal à 7.

👉 Et pour finir, on va avoir la cinquième et dernière itération avec i qui est égal à la dernière valeur contenue dans notre liste, donc dans ce cas-ci, le nombre 8. On passe une dernière fois sur la fonction print pour afficher cette valeur à l'écran, et vu qu'on est rendu à la dernière itération, on sort donc de la boucle for et on continue avec la suite de notre script.

Voilà comment fonctionne une boucle for pour l'interpréteur Python. Dans ce cas-ci, on a utilisé notre boucle pour passer à travers une liste.

Boucle for passant à travers une chaîne de caractères

En plus des listes, on peut également utiliser une boucle for pour passer à travers, par exemple, chaque caractère d'une chaîne de caractères.

for lettre in "Python":
    print(lettre)

Dans cet exemple, on utilise la boucle for pour passer à travers le mot "Python". La boucle for permet donc d'afficher toutes les lettres du mot "Python" les unes à la suite des autres, comme si on avait tout simplement utilisé six fois la fonction print.

Utilisation de la fonction range

Je vous ai dit au début de cette partie qu'on pouvait également utiliser les boucles pour répéter une opération un certain nombre de fois. C'est là que rentre en jeu la fonction range.

La fonction range nous permet de rapidement créer une liste de nombres de la taille qu'on lui indique.

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

En passant le nombre 10 à la fonction range, on se retrouve donc avec une liste qui contient dix nombres. On peut se servir de cette fonction à l'intérieur d'une boucle for pour répéter une opération un très grand nombre de fois.

for i in range(10000):
    print("Bonjour")

Avec cette boucle for, on affiche dix mille fois le mot "Bonjour" à l'écran. Vous êtes d'accord avec moi que si on avait dû créer à la main une liste de dix mille nombres, ça aurait été un peu long.

La fonction range nous permet donc de rapidement créer des listes gigantesques, dont on peut ensuite tirer profit pour répéter une opération avec la boucle for.

En résumé

Une boucle for permet de répéter une opération :

  • Un certain nombre de fois comme on l'a vu avec la fonction range

  • En parcourant une liste, ou en parcourant directement une structure de données, donc dans ce cas-ci, on va utiliser les valeurs à l'intérieur de notre structure de données, par exemple pour les afficher à l'écran, pour faire des calculs, pour faire des structures conditionnelles, pour parcourir une liste de fichiers pour trier tous les fichiers qui sont de type image, etc.

C'est principalement de cette façon qu'on va utiliser la boucle for.

Dans la prochaine partie, on va voir un autre type de boucle qui est assez similaire et qui permet généralement de faire la même chose, mais qui fonctionne un peu différemment : la boucle while.