Deux façons de répéter
Une boucle fait répéter un groupe d'instructions. Tu en as déjà utilisé en Scratch. Python en a deux :
1. for : quand tu sais combien de fois.
for i in range(5):
print("Bonjour !")Affiche cinq fois Bonjour !. Les lignes décalées de 4 espaces sous le for forment le corps de la boucle : ce qui est répété (comme les pièces glissées dans « répéter »). Chaque passage dans la boucle s'appelle un tour.
Que vaut i ? À chaque tour, i prend la valeur suivante donnée par range :
for i in range(5):
print(i)Affiche 0, 1, 2, 3, 4. range(5) commence à 0 et s'arrête avant 5 : il donne bien 5 valeurs, mais la dernière est 4.
| Écriture | Valeurs données |
|---|---|
range(5) | 0, 1, 2, 3, 4 |
range(2, 6) | 2, 3, 4, 5 (de 2 jusqu'à 6 exclu) |
range(0, 10, 2) | 0, 2, 4, 6, 8 (de 2 en 2) |
2. while : tant qu'une condition est vraie.
compte = 3
while compte > 0:
print(compte)
compte = compte - 1
print("Partez !")Affiche 3, 2, 1, puis Partez !. Avant chaque tour, Python vérifie la condition (compte > 0). Dès qu'elle est fausse, il sort de la boucle et passe à la suite. Attention : si rien ne change dans la boucle, la condition reste vraie pour toujours et le programme ne s'arrête plus. C'est une boucle infinie.
Correspondance avec Scratch
| En blocs | En Python |
|---|---|
| répéter 10 fois | for i in range(10): |
| répéter jusqu'à ce que réponse = oui | while reponse != "oui": (la condition s'inverse : « jusqu'à » devient « tant que… n'est pas ») |
| répéter indéfiniment | while True: (à éviter pour l'instant) |
Exemple de « répéter jusqu'à » :
reponse = ""
while reponse != "oui":
reponse = input("Tu es prête ? (oui/non) ")
print("C'est parti !")On tape non, peut-être, puis oui : la question est posée trois fois, puis C'est parti ! s'affiche.