Boucles for et while
Les boucles permettent de repeter du code automatiquement ! Plutot que d'ecrire 100 fois la meme chose, une boucle le fait pour toi en 3 lignes !
Objectifs du cours
- Comprendre le concept de boucle et d'iteration
- Maitriser la boucle for avec range()
- Parcourir des listes et des chaines avec for
- Utiliser la boucle while et eviter les boucles infinies
- Controler les boucles avec break et continue
Erreurs courantes a eviter
- Oublier les deux-points : apres for ou while
- Creer une boucle infinie (oublier d'incrementer le compteur)
- Confondre range(5) (0 a 4) et range(1, 6) (1 a 5)
- Modifier une liste pendant qu'on la parcourt
**Le principe de la boucle for**
La boucle `for` repete un bloc de code un nombre determine de fois.
**Syntaxe avec range() :** ```python for i in range(5): print(i) # Affiche 0, 1, 2, 3, 4 ```
**La fonction range() :**
| Syntaxe | Signification | Valeurs | |---------|---------------|---------| | range(5) | De 0 a 4 | 0, 1, 2, 3, 4 | | range(1, 6) | De 1 a 5 | 1, 2, 3, 4, 5 | | range(0, 10, 2) | De 0 a 8 par pas de 2 | 0, 2, 4, 6, 8 | | range(10, 0, -1) | De 10 a 1 | 10, 9, 8, ..., 1 |
**Important :** - La borne superieure est EXCLUE - range(5) = 5 iterations (de 0 a 4) - range(1, 6) = 5 iterations (de 1 a 5)
# La boucle for avec range()
print("=== BOUCLE FOR BASIQUE ===")
# Compter de 0 a 4
for i in range(5):
print(f"i = {i}")
# Compter de 1 a 5
print("\n=== DE 1 A 5 ===")
for i in range(1, 6):
print(f"Iteration {i}")
# Compter par pas de 2
print("\n=== NOMBRES PAIRS (0-10) ===")
for i in range(0, 11, 2):
print(i, end=" ")
print()
# Compte a rebours
print("\n=== COMPTE A REBOURS ===")
for i in range(10, 0, -1):
print(i, end=" ")
print("Decollage !")
# Table de multiplication
print("\n=== TABLE DE 7 ===")
for i in range(1, 11):
print(f"7 x {i} = {7 * i}")Quiz de validation
1. Que contient range(5) ?
2. Quelle instruction permet de sortir d'une boucle ?
3. Combien de fois s'execute cette boucle : for i in range(1, 10, 2) ?
4. Que fait 'continue' dans une boucle ?
5. Quel type de boucle utiliser quand on ne connait pas le nombre d'iterations ?
