Il existe deux types de boucles :
- Boucles bornées avec le mot for
- Boucle non bornées avec le mot while
Quand on sait combien de fois doit avoir lieu la répétition, on utilise généralement une boucle for. Si on ne connait pas à l’avance le nombre de répétitions, on choisit une boucle while.
Boucle bornée : for
Voici une boucle qui affiche les premiers carrés.
for i in range(10): print(i*i)
La seconde ligne est décalée et constitue le bloc à répéter. La variable i prend la valeur 0 et l’instruction affiche 02 ; puis i prend la valeur 1, et l’instruction affiche 12 ; puis 22, 32. . . Donc ce programme affiche : 0, 1, 4, 9, 16, 25, 36, 49, 64, 81. Attention : la dernière valeur prise par i est bien 9 (et pas 10).
On dit que l’on réalise une itération de la boucle à chaque fois que le corps de la boucle est exécuté.
Le programme suivant affiche les lettres composant un mot :
mot = "fleur" for lettre in mot: print(lettre)
Boucle non bornée : while
La boucle « tant que » exécute des instructions tant qu’une condition est vraie. Dès que la condition devient fausse, elle passe aux instructions suivantes.
Le programme suivant affiche la valeur la valeur de a tant que a < 8. Le résultat sera : 2, 3, 4, 5, 6, 7
a = 1 while a < 8: a = a + 1 print (a)
La fonction suivante donne la première puissance de 2 plus grande qu’un entier n donné en paramètre. Par exemple, si n=100, alors la fonction affichera : 2 puissance 7 = 128 > 100.
def f(n): p = 0 while 2**p < n: p = p + 1 print("2 puissance",p,"=",2**p,">",n)