La boucle while
La page d’avant faisait avancer for sur des valeurs déjà prêtes : des nombres issus de range, ou les lettres de tea. while n’apporte pas de liste. Avant les lignes décalées, et avant chaque tour, premier tour compris, il pose une question. True : ces lignes s’exécutent. Si le nombre à l’intérieur ne change pas, la question ne devient jamais False et la boucle ne s’arrête pas.
Mettez cups à 0. La question est cups < 3. Zéro passe : 0 s’écrit, et cups avance d’un. Pareil pour 1, puis pour 2. Après le 2, cups vaut 3. La question échoue. Le 3 n’est pas à l’écran. Il est resté dans cups, et c’est pour cela que la question a échoué.
cups = 0
while cups < 3:
print(cups)
cups = cups + 1
Trois lignes : 0, puis 1, puis 2. Après la boucle, cups garde 3. La boucle elle-même n’écrit pas ce 3, parce que print n’a son tour que si la question a réussi. Pour voir le 3, écrivez print au même niveau que while, hors de la boucle.
Déjà hors limite : les lignes décalées ne partent pas
Mettez cups à 3 avant while. La première question échoue tout de suite. Les lignes du dedans ne s’exécutent pas, pas même une fois. done est au même niveau que while : il n’appartient pas à la boucle et s’écrit une fois, après que while a décidé d’arrêter.
cups = 3
while cups < 3:
print(cups)
cups = cups + 1
print("done")
L’écran ne montre que done. Pas de nombre. print(cups) était dans la boucle, et la boucle n’a pas démarré.
La ligne cups = cups + 1 fait avancer le nombre jusqu’à ce que la question finisse par échouer. Retirez-la : cups reste à 0, cups < 3 reste True, et 0 s’écrit sans fin. Le programme ne sort pas de cette boucle.
Après while, il faut deux points, comme après for et if. Les lignes qui se répètent sont décalées de quatre espaces. Le mot s’écrit en minuscules. While avec un W majuscule est un nom que Python ne connaît pas, et le programme s’arrête.
La page suivante peut couper plus tôt
Cette page attend que la question elle-même devienne False. La suivante a un autre travail : couper la boucle, ou sauter un tour, avant que la question n’échoue d’elle-même.
Devinez d’abord
- cups part de 0 et la question est cups < 3. Quels nombres sont écrits ?
- Après la boucle, quel nombre reste dans cups, même s’il n’a pas été écrit ?
- cups part de 3 et done est au niveau de while. Qu’est-ce qui apparaît ?
- Vous effacez cups = cups + 1. La boucle se termine-t-elle ?
Où l’on se trompe
- Prendre le 3 final pour une ligne écrite
- Attendre un nombre alors que cups vaut déjà 3 avant while
- Oublier cups = cups + 1 et attendre une dernière ligne qui n’arrive pas
- Oublier les deux points après while
- Écrire While avec une majuscule
À emporter
while pose la question avant chaque tour. Les lignes décalées ne s’exécutent que tant que la réponse est True.
Depuis 0, avec cups < 3, vous voyez 0, 1 et 2. cups vaut alors 3, et ce 3 n’est pas écrit.
Si la question est déjà False, ces lignes ne partent jamais, et une ligne au niveau de while s’exécute une fois.
Sans cups = cups + 1 la question reste True et la boucle ne finit pas.
La page suivante peut couper la boucle ou sauter un tour.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut