Les boucles sont, bien entendu, une des fonctionnalités les plus importantes de tous langages de programmation. Elles sont la base de tout automatisme informatique.

En Python les boucles sont au nombre de 2 :

  • La boucle for qui peut se traduire par « Pour ». Traduite en français, une boucle for donne : pour tant d’éléments dans … alors exécute tant de fois cet action.
  • La boucle while qui peut se traduire par « Tant que ». Traduite en français, une boucle while donne : tant que cet condition est vrai alors exécute cet action.

Généralement les boucles for et while sont interchangeable (au prix d’une réorganisation du code), c’est à dire qu’il n’y a pas de tâche que la boucle for sache faire que la boucle while ne sache pas faire et inversement.

Les boucles en Python sont tellement haut niveau qu’elles en sont perturbantes et un zeste difficile à aborder.

Rassurer tous toutefois, dès lors que l’on a compris à quel point elles sont automatisées, elle sont simple et flexible dans leurs utilisations.

La boucle for

La boucle for est particulièrement efficace pour parcourir des structures de données établis comme les listes, des chaînes de caractères, les fichiers d’un répertoire etc.

La syntaxe pour définir une boucle for est :

for element in liste :
   print(element)

Qui se traduit en français par :

Pour element dans liste :
     afficher(element)

« element » est une variable créée à la volé qui, pour chaque itération dans la boucle, va prendre la valeur stocké dans la structure de données.

Pas d’inquiètude, voila ma tronche la première fois que j’ai croisé ça :

Concrètement :

my_list = [0,1,2,3,4]
for i in my_list:
    print(i)

>>> 0
>>> 1
>>> 2
>>> 3
>>> 4

Comment dit un peu plus haut, la boucle for fonctionne pour n’importe quelles structures de données :

for lettre in "Jacquie":
    print(lettre)

>>> J
>>> a
>>> c
>>> q
>>> u
>>> i
>>> e

La boucle while

La boucle while est particulièrement efficace pour gérer des actions qui doivent se répéter tant qu’une conditions reste dans un même état (True ou False).

La syntaxe pour définir une boucle while (ici avec un compteur) est :

i = 0
while i < 1000:
    print(f"Plus que {1000-i} fois")
    i += 1

A noter que, comme c’est le cas ici, la boucle while est souvent associé à un compteur.

ATTENTION, avec les boucles while, il est possible de créer des boucles infinies susceptible de faire planter au mieux le script, au pire le PC :

i = 0
while i < 1000:
    print("Et je remet le son, et je coupe le son...")

Dans cet exemple, le compteur n’est pas incrémenté, de fait i reste toujours égale à 0, la boucle tourne à l’infinie.

Boucle while pour un nombre d’itérations indéterminés

Cette faculté à pouvoir créer des « boucles infinies » peut se transformer en avantage si l’on contrôle cet état avec des événements déclenchés par un code ou un humain.

Par exemple :

start = "y"
while start == "y":
    start = input("On continue ? y/n ")

Ici on commence par définir la valeur de la variable start par « y ». La boucle while dont la condition d’exécution est que la variable start vale « y » commence donc sur True.
Tant que l’utilisateur continue de donner à la variable start la valeur y, la boucle continue à l’infinie. Toutefois, elle est constamment interrompue par la fonction input().
Il s’agit donc bien ici d’une « boucle infinie controlée ».

Autre exemple, on peut se servir de cette capacité à tourner à l’infinie pour programmer des événements ponctuels :

from time import sleep

while True:
    print("Télécharger The Mandalorian")
    sleep(604800)

Dans cette exemple, on va télécharger le nouvel épisode de The Mandalorian toutes les semaines. (la fonction sleep() permet de mettre en pause un script)


0 commentaire

Laisser un commentaire