while avec une condition de finfor avec range()On connaît déjà while True: (boucle infinie). Mais on peut aussi utiliser while avec une condition qui s'arrête quand elle devient fausse :
from microbit import *
nombre = 0
while nombre < 8:
display.scroll(nombre)
nombre = nombre + 1
display.scroll('fin')Ce programme affiche 0, 1, 2, 3, 4, 5, 6, 7 puis "fin". La boucle s'arrête quand nombre atteint 8 (car 8 n'est pas < 8).
display.scroll('fin') est en dehors de la boucle (pas d'indentation). Il ne s'exécute qu'une fois, après que la boucle est terminée.La boucle for répète un nombre précis de fois. range(5) génère les nombres 0, 1, 2, 3, 4 :
from microbit import *
for a in range(5):
display.set_pixel(a, 0, 9)
sleep(500)
sleep(1000)
display.clear()
for b in range(5):
display.set_pixel(0, b, 9)
sleep(500)
sleep(1000)
display.clear()
for y in range(5):
for x in range(5):
display.set_pixel(x, y, 9)
sleep(500)
sleep(1000)
display.clear()Explications :
# Pour y=0 : x prend les valeurs 0,1,2,3,4 (ligne 0)
# Pour y=1 : x prend les valeurs 0,1,2,3,4 (ligne 1)
# Pour y=2 : x prend les valeurs 0,1,2,3,4 (ligne 2)
# ...etc.
# Au total : 5 × 5 = 25 LEDs allumées !
for y in range(5): # y = 0, 1, 2, 3, 4
for x in range(5): # pour chaque y, x = 0, 1, 2, 3, 4
display.set_pixel(x, y, 9)range(5) # 0, 1, 2, 3, 4
range(2, 8) # 2, 3, 4, 5, 6, 7
range(0, 10, 2) # 0, 2, 4, 6, 8 (par pas de 2)
range(5, 0, -1) # 5, 4, 3, 2, 1 (compte à rebours !)Crée un compte à rebours de 9 à 0. Affiche chaque nombre pendant 1 seconde, puis affiche "GO!" à la fin. Utilise une boucle for avec range(9, -1, -1).
Utilise des boucles imbriquées pour allumer les LEDs ligne par ligne, de haut en bas. Chaque LED s'allume avec un délai de 100ms. À la fin, éteins tout et recommence !
Crée une chenille : une LED se déplace de gauche à droite sur la ligne du milieu. Quand elle arrive au bout, elle repart de gauche. Chaque LED derrière la tête s'éteint quand la tête avance.