Objectifs de cette leçon
- Utiliser les boucles for et while
- Comprendre les itérations et les parcours
- Éviter les boucles infinies
Les boucles (itération) 🔄
Imagine que tu doives écrire "Bonjour" 100 fois. Tu ne vas pas copier-coller 100 fois la même ligne, si ? C'est là que les boucles arrivent à la rescousse !
1. Pourquoi des boucles ? 🤔
Les boucles permettent d'exécuter un bloc d'instructions plusieurs fois sans les écrire plusieurs fois.
Sans boucle :
print("Bonjour") print("Bonjour") print("Bonjour") # Fastidieux ! Et pour 100 fois ?Avec une boucle :
for i in range(3): print("Bonjour") # 3 lignes suffisent pour 3 ou 3000 affichages !
Il existe deux sortes de boucles :
for— quand on sait à l'avance combien de fois répéterwhile— quand on répète tant qu'une condition est vraie
2. La boucle for — "pour chaque…" 🔢
La boucle for sert à parcourir une série d'éléments ou à compter.
Exécution pas à pas
pseudo1/4🔄POUR i ALLANT DE 0 À 5 FAIRE🔄 BoucleVérifie si "POUR i ALLANT DE 0 À 5" est vrai. Si oui, on recommence. Sinon, on sort de la boucle.Répète les actions suivantes TANT QUE "POUR i ALLANT DE 0 À 5" est vraie. Dès que c'est faux, on continue après la boucle.
🔍 Traduction : "Pour chaque nombre i qui va de 0 à 5, affiche-le". La boucle va donc faire 6 étapes (0, 1, 2, 3, 4, 5).
En Python :
for i in range(6): # range(6) = [0, 1, 2, 3, 4, 5] print(i) # Affiche chaque nombre l'un après l'autre # Résultat : 0 1 2 3 4 5
range(6)c'est comme une liste de nombres : 0, 1, 2, 3, 4, 5. La variableiprend chaque valeur à tour de rôle, et le bloc sousfors'exécute à chaque fois.
On peut aussi parcourir une liste de fruits :
fruits = ["pomme", "banane", "cerise"] for fruit in fruits: # 'fruit' prend chaque élément un par un print(fruit) # Affiche : pomme, banane, cerise
🧠 Souviens-toi :
forc'est comme "pour chaque élément de cette liste, fais quelque chose". Le nom aprèsfor(icifruit) est choisi par toi, au singulier de ce que tu parcours.
3. La boucle while — "tant que…" ⏳
La boucle while répète un bloc tant qu'une condition est vraie. Dès que la condition devient fausse, la boucle s'arrête.
Exécution pas à pas
pseudo1/4🔄TANT QUE condition VRAIE FAIRE🔄 BoucleVérifie si "condition VRAIE" est vrai. Si oui, on recommence. Sinon, on sort de la boucle.Répète les actions suivantes TANT QUE "condition VRAIE" est vraie. Dès que c'est faux, on continue après la boucle.
🔍 Traduction : "Tant que la condition est vraie, je continue. Dès qu'elle devient fausse, j'arrête et je passe à la suite."
Exemple du jeu "devine le nombre" :
mystere = 42 tentative = -1 while tentative != mystere: # Tant que le joueur n'a pas trouvé… tentative = int(input("Devinez : ")) # …on lui demande un nombre if tentative < mystere: print("Trop petit") elif tentative > mystere: print("Trop grand") print("Bravo !") # On sort de la boucle → le joueur a gagné !
Pas à pas :
- Le programme pose la question : "Est-ce que
tentative(qui vaut -1) est différent demystere(42) ?" → Oui, donc on entre dans la boucle- Le joueur entre 30 → "Trop petit". On remonte vérifier la condition
- "30 != 42 ?" → Oui, on continue
- Le joueur entre 42 → "42 != 42 ?" → Non ! La boucle s'arrête
- Le programme affiche "Bravo !"
4. Visualisation : somme de 0 à 5 🎯
Calculons la somme des nombres de 0 à 5 avec une boucle. Voici le chemin parcouru :
La boucle en action :
Tour i condition i <= 5 ? somme 1 0 ✅ Vrai → on entre 0 2 1 ✅ Vrai → on entre 1 3 2 ✅ Vrai → on entre 3 4 3 ✅ Vrai → on entre 6 5 4 ✅ Vrai → on entre 10 6 5 ✅ Vrai → on entre 15 7 6 ❌ Faux → on sort 15
Regarde le diagramme interactif "Exécution pas à pas" plus bas : tu peux cliquer pour voir chaque étape avec les valeurs de i et somme qui changent en direct ! 🕹️
5. Les instructions de contrôle 🛑
Parfois on veut modifier le comportement normal d'une boucle :
| Instruction | Effet | Analogue dans la vie |
|---|---|---|
break | Sort immédiatement de la boucle | Comme dire "stop, j'arrête" |
continue | Saute à l'itération suivante | Comme "celui-là, je le zappe" |
else | Exécuté si la boucle finit normalement | "Mission accomplie sans incident" |
for i in range(10): if i == 3: continue # On saute le 3, on passe directement au 4 if i == 7: break # On s'arrête là, on ne va pas jusqu'à 9 print(i) # Résultat : 0 1 2 4 5 6
Explication : Le programme compte de 0 à 9. Quand
ivaut 3,continuesaute l'affichage. Quandivaut 7,breakcasse la boucle. On n'affiche donc que 0, 1, 2, 4, 5, 6.
6. Piège : la boucle infinie ⚠️
Attention ! Si ta condition de while n'est jamais fausse, la boucle tourne pour toujours et le programme plante (ou rame à l'infini) :
# ❌ À NE JAMAIS FAIRE while True: print("Je tourne en rond !") # Ce message s'affiche à l'infini !
💡 Pour l'éviter : vérifie toujours qu'une variable dans la condition finira par changer. Par exemple, dans le jeu du nombre mystère,
tentativechange à chaque tour (le joueur entre un nouveau nombre), donc la conditiontentative != mysterefinira par être fausse.
7. Exercice pour toi 🎯
Ouvre l'onglet Sandbox et écris ces programmes :
Exercice 1 : Table de multiplication Demande un nombre à l'utilisateur et affiche sa table de multiplication (de 1 à 10).
n = int(input("Quelle table ? ")) for i in range(1, 11): print(f"{n} × {i} = {n * i}")
Exercice 2 : Compte à rebours Affiche un compte à rebours de 10 à 0 avec "Décollage !" à la fin.
Exercice 3 : Somme à volonté Demande des nombres à l'utilisateur tant qu'il n'entre pas 0, et affiche la somme totale à la fin.
⚡ Simulateur — Boucle FOR
Étape 1/7Boucle FOR : i va de 1 à 5.
⚡ Simulateur — Boucle WHILE
Étape 1/11Programme avec boucle WHILE.