La boucle while
est un outil puissant en Python pour contrôler le flux de vos programmes. Contrairement aux boucles for
, qui itèrent sur une séquence définie, les boucles while
continuent l’exécution tant qu’une condition spécifiée reste vraie. Cela les rend particulièrement utiles lorsque le nombre d’itérations est inconnu à l’avance.
Table des matières
- Structure de base d’une boucle While
- Contrôle de l’exécution de la boucle :
break
etcontinue
- La construction
while-else
- Exemples pratiques
- Éviter les boucles infinies
Structure de base d’une boucle While
La syntaxe fondamentale d’une boucle while
est simple :
while condition:
# Code à exécuter répétitivement
# ...
La condition
est évaluée avant chaque itération. Si elle est évaluée à True
, le bloc de code indenté est exécuté. Si elle est évaluée à False
, la boucle se termine et le programme continue avec les instructions suivant la boucle.
Contrôle de l’exécution de la boucle : break
et continue
Les instructions break
et continue
offrent un contrôle précis sur le comportement de la boucle :
break
: quitte immédiatement la boucle, quelle que soit la condition.continue
: saute le reste de l’itération actuelle et passe à l’itération suivante.
count = 0
while count < 5:
count += 1
if count == 3:
continue # Sauter l'affichage de 3
print(count)
while count < 10:
count += 1
if count == 7:
break # Sortir de la boucle lorsque count vaut 7
print(count)
La construction while-else
La boucle while
de Python prend en charge de manière unique un bloc else
facultatif. Ce bloc else
ne s’exécute que si la boucle se termine *naturellement*, c’est-à-dire lorsque la condition de la boucle devient False
. Il est crucial de noter que le bloc else
n’est *pas* exécuté si la boucle est terminée à l’aide d’une instruction break
. Cela fournit un moyen clair de gérer les situations où vous devez effectuer une action uniquement lorsque la boucle se termine sans interruption.
count = 0
while count < 5:
print(count)
count += 1
else:
print("Boucle terminée normalement !")
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("Boucle NON terminée normalement !") # Ceci ne s'affichera pas
Exemples pratiques
Voici quelques exemples illustrant les utilisations pratiques des boucles while
:
Exemple 1 : Validation de la saisie utilisateur
while True:
try:
age = int(input("Entrez votre âge : "))
if age >= 0:
break # Quitter la boucle si un âge valide est entré
else:
print("L'âge ne peut pas être négatif.")
except ValueError:
print("Saisie invalide. Veuillez entrer un nombre.")
print(f"Votre âge est : {age}")
Exemple 2 : Simulation d’un compte à rebours
import time
countdown = 10
while countdown > 0:
print(countdown)
time.sleep(1) # Pause pendant 1 seconde
countdown -= 1
print("Décollage !")
Éviter les boucles infinies
Un piège courant avec les boucles while
est de créer une boucle infinie, c’est-à-dire une boucle qui ne se termine jamais. Cela se produit généralement lorsque la condition de la boucle ne devient jamais False
. Assurez-vous toujours que votre condition de boucle finira par être évaluée à False
. Examinez attentivement la logique de votre boucle et assurez-vous que les variables affectant la condition sont mises à jour correctement dans le corps de la boucle.