Deux principaux types de boucles en Python

Une boucle permet de répéter un ensemble d'instructions un certain nombre de fois. Quelle que soit la boucle utilisée, c'est l'indentation des lignes de commandes qui les place ou non à l'intérieur de la boucle.

DéfinitionBoucle for

Elle est utilisée quand on connaît à l'avance le nombre d'itérations.

Ci-dessous les instructions sont exécutées n fois, i variant entre 0 et n-1.

1
for i in range(n):
2
    Instruction dans la boucle
3
    Instruction dans la boucle
4
Instruction hors de la boucle

On peut spécifier des critères plus précis dans l'instruction range() sous la forme :

1
range(début, fin, pas)

DéfinitionBoucle while

Elle est utilisée pour effectuer des instructions tant que la condition placée à la suite du while est vraie. Si qu'elle cesse de l'être, on sort de la boucle.

1
while (condition):
2
    Instruction dans la boucle
3
    Instruction dans la boucle
4
Instruction hors de la boucle

ExempleAllumage progressif de toutes les DEL du panneau à l'aide de boucles for

Le court programme suivant exploite deux boucles for imbriquées pour gérer les DEL de l'afficheur une à une afin de les allumer progressivement, puis de les éteindre.

1
from microbit import *
2
display.clear()  # On éteint les DEL
3
while True:  # Les instructions de la boucle sont répétées indéfiniment
4
    for ligne in range(5):  # ligne varie entre 0 et 4
5
        for colonne in range(5):  # colonne varie entre 0 et 4
6
            display.set_pixel(colonne,ligne,9)  # On allume la DEL de coordonnées (colonne,ligne)
7
            sleep(50)  # on attend 50 ms avant la prochaine itération
8
    for ligne in range(5):
9
        for colonne in range(5):
10
            display.set_pixel(colonne,ligne,0)  # On éteint la DEL de coordonnées (colonne,ligne)
11
            sleep(50)

ExempleUne boucle while : allumer le panneau de DEL tant que le bouton A est pressé

Le programme ci-dessous illustre l'utilisation simple d'une boucle while pour allumer le panneau de DEL tant qu'on appuie sur un bouton.

1
from microbit import *
2
while True:
3
    while button_a.is_pressed():  # Tant qu'on appuie sur le bouton A
4
        for i in range(5):
5
            for j in range(5):
6
                display.set_pixel(i ,j , 9)  # On allume tous les pixels
7
    display.clear()  # On efface l'écran dès que le bouton A n'est plus pressé