Cours
La boucle while est assez similaire à une instruction if : elle exécute le code à l’intérieur si la condition est vraie. Cependant, contrairement à if, la boucle while continue d’exécuter le code de façon répétée tant que la condition reste vraie.
La boucle while

La syntaxe de la boucle while est très proche de celle de l’instruction if, comme vous pouvez le voir ci-dessus. La boucle while n’est pas la plus courante, mais dans certains cas, elle peut s’avérer très utile.
Exemple
Supposons que vous calculiez numériquement un modèle à partir de vos données. Cela implique généralement de répéter les mêmes étapes jusqu’à ce que l’erreur entre votre modèle et vos données passe sous un certain seuil. Dès que vous pouvez reformuler le problème en répéter une action jusqu’à ce qu’une condition soit remplie, une boucle while est souvent la solution idéale.
Dans l’exemple ci-dessous, vous commencez avec une erreur égale à 50.0. Ensuite, vous écrivez une boucle while dont la condition est error > 1, afin qu’elle s’exécute tant que l’erreur est supérieure à 1. À l’intérieur de la boucle, vous divisez l’erreur par quatre et mettez à jour la variable error. Lors de la première exécution, on obtient 12,5.

Python revient ensuite à la condition de la boucle while avec la nouvelle erreur égale à 12,5. La condition est à nouveau vraie et le code est exécuté.

Python retourne encore une fois à la condition de la boucle while et tente de relancer le code. Comme 3,125 est supérieur à 1, le calcul est effectué.

Enfin, la nouvelle condition de la boucle while devient inférieure à 1, le code échoue donc à la vérification et ne s’exécute plus.

Cet exemple va vous être utile, car il est temps d’écrire une boucle while vous-même ! Nous allons coder une boucle while qui implémente un système de contrôle très basique pour un pendule inversé. S’il y a un écart par rapport à la position parfaitement verticale, la boucle while corrigera progressivement cet écart.
Notez que si votre boucle while met trop de temps à s’exécuter, vous avez peut-être fait une erreur. En particulier, n’oubliez pas d’indenter le contenu de la boucle !
Exemple d’erreur avec une boucle while (exécution sans fin)
Supposons que vous commentiez ou supprimiez la mise à jour de la valeur d’erreur, puis que vous relanciez le script. L’erreur ne serait jamais mise à jour et la condition resterait toujours vraie. La boucle while tournerait alors indéfiniment.

Si cette erreur se produisait sur votre système, vous devriez interrompre le programme Python en appuyant sur les touches Contrôle + C.
Exemple
Dans l’exemple ci-dessous, vous allez créer la variable offset avec une valeur initiale de 8. Puis vous écrirez une boucle while qui s’exécute tant que offset n’est pas égal à 0.
À l’intérieur de la boucle while :
- Vous afficherez le message
"correcting...". - Ensuite, diminuez la valeur de
offsetde 1. Vous pouvez le faire avecoffset = offset - 1. - Enfin, à l’intérieur de la boucle, affichez la valeur de
offsetpour suivre son évolution.

Lorsque nous exécutons le programme ci-dessus, il produit le résultat suivant :
correcting...
7
correcting...
6
correcting...
5
correcting...
4
correcting...
3
correcting...
2
correcting...
1
correcting...
0
Pour en savoir plus sur les boucles while, regardez cette vidéo issue de notre cours Intermediate Python.
Ce contenu est extrait du cours Intermediate Python de DataCamp, réalisé par Hugo Bowne-Anderson.
Découvrez aussi notre tutoriel sur les boucles en Python ainsi que notre guide Émuler une boucle do-while en Python pour continuer à apprendre et à vous entraîner sur les boucles en Python, jusqu’à devenir expert.