Accueil webclasse

Python · Seconde et Première

Les boucles for et while

Une boucle répète des instructions sans avoir à les réécrire. Lis le cours, puis complète les programmes et regarde-les s'exécuter ligne par ligne, avec le contenu de chaque variable.

Cours

Trois notions, avec des exemples à exécuter pas à pas.

1La boucle for : répéter un nombre de fois connu

Une boucle for répète un bloc d'instructions un nombre de fois fixé à l'avance. Les instructions répétées forment le corps de la boucle : elles sont décalées vers la droite de 4 espaces (on dit indentées).


          
        

La variable i est le compteur. Elle prend successivement les valeurs 0, 1, 2 et 3 : le corps est exécuté 4 fois.

La dernière ligne n'est pas décalée : elle ne fait pas partie de la boucle. Elle est exécutée une seule fois, après la boucle.

On écritValeurs prises par le compteurNombre de tours
range(5)0, 1, 2, 3, 45
range(2, 6)2, 3, 4, 54
range(1, 10, 3)1, 4, 7 (on avance de 3 en 3)3
range(10, 0, -2)10, 8, 6, 4, 2 (on recule de 2 en 2)5

Attention : range(a, b) commence à a et s'arrête juste avant b. Pour aller de 1 à 10, on écrit range(1, 11).

Parcourir un mot ou une liste. La variable prend chaque caractère du mot (ou chaque élément de la liste), dans l'ordre.


          
        

L'accumulateur. Pour calculer une somme, on crée une variable à 0 avant la boucle, et on lui ajoute une valeur à chaque tour.


          
        

2La boucle while : répéter tant qu'une condition est vraie

Une boucle while (« tant que ») répète un bloc tant qu'une condition est vraie. La condition est testée avant chaque tour. Dès qu'elle est fausse, on sort de la boucle et le programme continue après.


          
        

Au fil des tours, n vaut 1, puis 3, 9, 27 et 81.

Le test 81 < 50 est faux : la boucle s'arrête et le programme affiche 81. On ne savait pas à l'avance qu'il faudrait 4 tours.

En PythonSignificationEn PythonSignification
a < ba strictement inférieur à ba <= ba inférieur ou égal à b
a > ba strictement supérieur à ba >= ba supérieur ou égal à b
a == ba égal à ba != ba différent de b

Boucle infinie. Si la condition ne devient jamais fausse, la boucle ne s'arrête jamais. Le corps de la boucle doit donc modifier une variable qui intervient dans la condition. Dans l'exemple ci-contre, n vaut 1, 3, 5, 7, 9, 11… et ne vaut jamais 10.


          
        

3for ou while ?

Boucle forBoucle while
On l'utilise quand…on connaît le nombre de tourson s'arrête quand une condition devient fausse
Exempleafficher la table de 7chercher en quelle année un capital dépasse 1 500 €
Le compteuravance tout seuldoit être modifié dans le corps de la boucle

À retenir pour les deux boucles : la ligne for … ou while … se termine par deux-points :, et toutes les lignes du corps sont décalées de 4 espaces.