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 offset de 1. Vous pouvez le faire avec offset = offset - 1.
Enfin, à l’intérieur de la boucle, affichez la valeur de offset pour 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...0Propulsé par
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.
Tutoriel complet d'introduction aux boucles Python. Apprenez et pratiquez les boucles while et for, les boucles imbriquées, les mots-clés break et continue, la fonction range et bien plus encore.
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 esterror > 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 variableerror. 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
whilevous-même ! Nous allons coder une bouclewhilequi 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 bouclewhilecorrigera progressivement cet écart.Notez que si votre boucle
whilemet 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
offsetavec une valeur initiale de8. Puis vous écrirez une bouclewhilequi s’exécute tant queoffsetn’est pas égal à0.À l’intérieur de la boucle
while:"correcting...".offsetde 1. Vous pouvez le faire avecoffset = offset - 1.offsetpour suivre son évolution.Lorsque nous exécutons le programme ci-dessus, il produit le résultat suivant :
Essayez par vous-même.
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.