Aller au contenu

TocTocProf ouvre bientôt.

Écrire une boucle for ou while en Python

Boucles bornées et non bornées · par Équipe TocTocProf

Une boucle répète des instructions. La boucle bornée for fait un nombre de tours connu à l’avance. La boucle non bornée while tourne tant qu’une condition est vraie, sans savoir à l’avance combien de fois. Toutes les sorties ci-dessous ont été obtenues en exécutant les programmes avec Python 3.

Méthode

  1. Si tu sais combien de tours faire, utilise for ; si tu attends qu’une condition change, utilise while.
  2. for i in range(a, b) fait tourner i de a à b - 1 : la borne b n’est jamais atteinte.
  3. Avant un while, donne une valeur de départ à la variable que teste la condition.
  4. Dans le while, modifie cette variable à chaque tour, sinon la boucle ne s’arrête jamais.
  5. Indente de 4 espaces ce qui doit être répété, puis vérifie à la main le premier tour, le deuxième et le dernier.

Exemple résolu

Somme des entiers de 1 à 10 : on sait qu’il y a 10 tours, on prend for.

total = 0
for i in range(1, 11):
    total = total + i
print(total)
55

Une population de 100 bactéries double chaque heure. Au bout de combien d’heures dépasse-t-elle 10 000 ? On ne connaît pas le nombre de tours : on prend while.

bacteries = 100
heures = 0
while bacteries <= 10000:
    bacteries = bacteries * 2
    heures = heures + 1
print(heures, bacteries)
7 12800

Vérification à la main : 200, 400, 800, 1 600, 3 200, 6 400, puis 12 800 à la septième heure.

Exercices corrigés

Exercice 1

Afficher la table de 7, de 7×17 \times 1 à 7×107 \times 10.

Corrigé. Dix tours connus à l’avance : une boucle for.

for i in range(1, 11):
    print(7, "x", i, "=", 7 * i)
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70

Exercice 2

Que fait ce programme ? Prévois l’affichage avant de l’exécuter.

n = 0
for i in range(3, 12, 2):
    n = n + 1
print(n, i)

Corrigé. range(3, 12, 2) donne 3, 5, 7, 9, 11 : la boucle fait 5 tours, et i vaut 11 au dernier.

5 11

Exercice 3

On place 500 € à 2 % par an. Au bout de combien d’années le capital atteint-il au moins 600 € ?

Corrigé. On ne sait pas combien d’années il faut : une boucle while, qui tourne tant que le capital est sous 600 €.

capital = 500
annees = 0
while capital < 600:
    capital = capital * 1.02
    annees = annees + 1
print(annees, round(capital, 2))
10 609.5

Il faut 10 ans ; le capital vaut alors environ 609,50 €.

Erreurs fréquentes

  • Oublier que range s’arrête avant la borne. Avec range(1, 10) dans l’exemple, le programme affiche 45 : il manque 10.
  • Une boucle while qui ne s’arrête pas. Si on oublie la ligne bacteries = bacteries * 2, la condition reste vraie à chaque tour et le programme tourne sans fin.
  • Mettre print dans la boucle. Indenté sous le for, print(total) s’affiche à chaque tour. Avec range(1, 5), on obtient 1, 3, 6, 10 sur quatre lignes au lieu du seul total.
  • Écrire la condition à l’envers. Avec while bacteries > 10000, la condition est fausse dès le départ : la boucle ne tourne jamais et le programme affiche 0 100.

Toujours bloqué ?

Décris ton exercice : un étudiant en école d’ingénieurs te propose son aide en visio.

Le programme de SNT en seconde · Toutes les fiches

Source : Programme de sciences numériques et technologie de seconde générale et technologique (Bulletin officiel spécial n° 1 du 22 janvier 2019), lu le 21 octobre 2026.