Accueil › Apprendre l’informatique › Leçon 5 sur 14

Débutant · 10 min de lecture · gratuit, sans compte

Python : les boucles, ou comment répéter sans se fatiguer

for, while, range, accumulateurs : automatise les tâches répétitives et évite les boucles infinies.

Objectifs de cette leçon
  • Utiliser for avec range et while
  • Construire un accumulateur (somme, compteur)
  • Éviter les boucles infinies

Pourquoi des boucles ?

Pour afficher « Bonjour » 1000 fois, tu n’écris pas 1000 lignes. Une boucle répète un bloc d’instructions. Python en propose deux : for quand on sait combien de fois (ou sur quoi) répéter, while quand on répète tant qu’une condition reste vraie.

La boucle for et range

for i in range(5):
    print("tour numéro", i)

# range(début, fin, pas) : la fin est EXCLUE
for n in range(2, 11, 2):
    print(n)          # 2, 4, 6, 8, 10

range(5) produit 0, 1, 2, 3, 4 : on commence à 0 et la borne de fin est exclue. C’est la source d’erreurs numéro un chez les débutants.

On peut aussi parcourir directement une liste ou un texte :

for lettre in "code":
    print(lettre.upper())

for fruit in ["pomme", "kiwi", "mangue"]:
    print("J'aime la", fruit)

L’accumulateur : le motif le plus utile

On crée une variable avant la boucle, puis on la met à jour à chaque tour. Calcul de la somme de 1 à 100 :

total = 0
for i in range(1, 101):
    total = total + i
print(total)   # 5050

Même idée pour compter : compteur = compteur + 1 chaque fois qu’une condition est remplie. Combine boucle et condition :

notes = [12, 8, 15, 9, 17, 11]
reussies = 0
for note in notes:
    if note >= 10:
        reussies += 1     # raccourci de reussies = reussies + 1
print(reussies, "notes sur", len(notes), "sont ≥ 10")

La boucle while

n = 100
etapes = 0
while n > 1:
    n = n // 2
    etapes += 1
print("Il faut", etapes, "divisions par 2 pour passer de 100 à 1")

Ici on ne sait pas à l’avance combien de tours seront nécessaires : while est le bon outil. Ce motif — diviser par 2 jusqu’à 1 — réapparaîtra dans la leçon sur la recherche dichotomique.

Exercice

Affiche la table de multiplication de 7 (de 7 × 1 à 7 × 10).

Voir une solution
for i in range(1, 11):
    print("7 x", i, "=", 7 * i)

Erreurs courantes

  • Décalage d’un cran (off-by-one) : range(10) s’arrête à 9, pas à 10.
  • Oublier d’initialiser l’accumulateur avant la boucle.
  • Remettre l’accumulateur à zéro dans la boucle : il faut l’initialiser une seule fois, avant.
  • Modifier une liste pendant qu’on la parcourt : source de comportements inattendus.

Vérifie ce que tu as compris