
Boucles : for et while
Maîtrisez les boucles en Python (for et while). Parcourez des séquences, répétez des instructions, et contrôlez le flux d'exécution de vos programmes. Découvrez l'instruction 'else' avec les boucles.
Qu'est-ce qu'une boucle ? Principe et utilité
En programmation, une boucle permet de répéter l'exécution d'un bloc de code plusieurs fois. Cela est utile pour effectuer des tâches répétitives, parcourir des séquences de données (comme des listes ou des chaînes de caractères), ou attendre qu'une condition soit remplie.
Les boucles sont un élément essentiel de la plupart des programmes. Elles permettent d'automatiser des tâches, de traiter des données de manière itérative, et de rendre les programmes plus dynamiques.
Python propose deux types de boucles principales : la boucle `for` et la boucle `while`.
La boucle for : parcourir des séquences
La boucle `for` en Python est utilisée pour parcourir les éléments d'une séquence (comme une liste, un tuple, une chaîne de caractères, ou un itérable). La syntaxe de base est la suivante :
for element in sequence:
# Bloc de code à exécuter pour chaque élémentA chaque itération de la boucle, la variable `element` prend la valeur de l'élément suivant de la `sequence`. Le bloc de code indenté après le `:` est exécuté pour chaque élément.
Exemple avec une liste :
fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
print(fruit)Exemple avec une chaîne de caractères :
message = "Bonjour"
for lettre in message:
print(lettre)La fonction `range()` est souvent utilisée avec la boucle `for` pour générer une séquence de nombres :
for i in range(5): # Génère les nombres de 0 à 4
print(i)
for i in range(2, 7): # Génère les nombres de 2 à 6
print(i)
for i in range(1, 10, 2): # Génère les nombres impairs de 1 à 9 (pas de 2)
print(i)La boucle while : répéter tant qu'une condition est vraie
La boucle `while` permet de répéter l'exécution d'un bloc de code tant qu'une condition est vraie. La syntaxe est la suivante :
while condition:
# Bloc de code à exécuter tant que la condition est vraieLa `condition` est une expression booléenne. Le bloc de code indenté après le `:` est exécuté répétitivement tant que la condition est vraie. La condition est évaluée avant chaque itération.
Exemple :
compteur = 0
while compteur < 5:
print(compteur)
compteur += 1Il est important de s'assurer que la condition de la boucle `while` deviendra fausse à un moment donné, sinon la boucle s'exécutera indéfiniment (boucle infinie).
Un cas d'usage classique de la boucle `while` est la saisie utilisateur, jusqu'à l'obtention d'une valeur valide.
while True:
reponse = input("Entrez un nombre positif : ")
try:
nombre = int(reponse)
if nombre > 0:
break # Sort de la boucle si le nombre est positif
else:
print("Le nombre doit être positif.")
except ValueError:
print("Entrée invalide. Veuillez entrer un nombre.")
print("Vous avez entré :", nombre)L'instruction else avec les boucles : un comportement particulier
En Python, les boucles `for` et `while` peuvent avoir une clause `else` optionnelle. Le bloc de code de la clause `else` est exécuté lorsque la boucle se termine *normalement*, c'est-à-dire sans avoir été interrompue par une instruction `break` (voir section suivante).
Pour la boucle `for` :
for element in sequence:
# Bloc de code à exécuter pour chaque élément
else:
# Bloc de code à exécuter si la boucle se termine normalement (sans break)Exemple :
nombres = [1, 3, 5, 7, 9]
for n in nombres:
if n % 2 == 0:
print("La liste contient un nombre pair.")
break
else:
print("La liste ne contient que des nombres impairs.")Pour la boucle `while` :
while condition:
# Bloc de code à exécuter tant que la condition est vraie
else:
# Bloc de code à exécuter si la boucle se termine normalement (sans break)Exemple :
compteur = 0
while compteur < 5:
if compteur == 3:
break
print(compteur)
compteur += 1
else:
print("La boucle s'est terminée normalement.") # Ce message ne sera pas affiché car il y a un breakLa clause `else` des boucles est une fonctionnalité moins connue de Python, mais elle peut être utile dans certains cas pour simplifier la logique du programme.