Répéter avec for et while
range(5) produit 0, 1, 2, 3 et 4 : cinq nombres, et 5 n'en fait pas partie.
Exécute une boucle de trois lignes et regarde total grandir
Copie ce programme dans IDLE et exécute-le avant de lire l'explication. Change ensuite la liste pour mettre tes propres nombres et exécute-le de nouveau.
total = 0
for n in [3, 5, 2]:
total = total + n
print(n, total)
print("done", total)3 3
5 8
2 10
done 10La ligne for prend les éléments de la liste un par un. À chaque tour, la variable n désigne l'élément suivant, et les lignes indentées en dessous s'exécutent une fois avec cette valeur. Un passage dans les lignes indentées s'appelle une itération. Après le dernier élément, Python continue avec la première ligne non indentée : "done" s'affiche donc une seule fois, à la fin. Un tableau de suivi rend le schéma clair.
| Passage | n | total après le passage | Affiché |
|---|---|---|---|
| (avant) | 0 | ||
| 1 | 3 | 3 | 3 3 |
| 2 | 5 | 8 | 5 8 |
| 3 | 2 | 10 | 2 10 |
| (après) | 10 | done 10 |
La variable total s'appelle un accumulateur : elle commence à 0 avant la boucle et collecte quelque chose à chaque passage. La ligne total = total + n est si courante que Python a une forme courte, total += n. Compter fonctionne de la même façon avec count += 1.
range() fabrique les nombres pour toi
Pour répéter quelque chose un nombre fixe de fois, boucle sur range(). range(5) donne 0, 1, 2, 3, 4 : il commence à 0 et s'arrête avant 5, comme une tranche. range(1, 6) donne 1 à 5. Un troisième nombre fixe le pas, donc range(0, 10, 2) donne les nombres pairs de 0 à 8. La table de multiplication de 7, que tout écolier coréen récite en deuxième année, est une boucle de deux lignes.
for i in range(1, 10):
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 = 63Une boucle for peut aussi parcourir les caractères d'une chaîne, ce qui facilite le comptage des lettres.
count = 0
for ch in "banana":
if ch == "a":
count += 1
print(count)3while répète tant qu'une condition reste True
Une boucle while n'a pas de liste à parcourir. Elle vérifie une condition, exécute les lignes indentées si elle est True, et revérifie, encore et encore. Cela convient aux tâches dont tu ne connais pas à l'avance le nombre de passages, comme « continue d'épargner jusqu'à ce que le total atteigne 50 000 wons ». Quelque chose dans la boucle doit changer la condition, sinon la boucle ne finit jamais. Si cela arrive, arrête le programme avec Ctrl+C.
saved = 0
weeks = 0
while saved < 50000:
saved += 12000
weeks += 1
print(weeks, saved)5 60000break quitte une boucle sur-le-champ, même au milieu. C'est pratique quand tu cherches et que tu peux t'arrêter dès que tu trouves ce que tu veux. La boucle ci-dessous s'arrête au premier score inférieur à 60 et ne regarde jamais le 88.
for s in [72, 91, 55, 88]:
if s < 60:
print("first below 60:", s)
break
print("ok", s)ok 72
ok 91
first below 60: 55| for x in ... | Exécute les lignes indentées une fois pour chaque élément |
| range(a, b) | Nombres entiers de a jusqu'à b exclu |
| while | Répète tant que la condition est True |
| accumulateur | Une variable qui collecte un total au fil des passages |
| += | total += n est l'abréviation de total = total + n |
| break | Quitte la boucle immédiatement |
- Qu'affiche ce code ?
for i in range(3): print(i)0
1
21
2
30
1
2
33
- Qu'affiche ce code ?
total = 0 for n in range(1, 5): total += n print(total) - Qu'affiche ce code ?
print(list(range(0, 10, 3))) - Qu'affiche ce code ?
total = 0 for n in [1, 2, 3]: total += n print(total)61
3
61
2
30
1
3
- Qu'affiche ce code ?
count = 0 for ch in "seoul": if ch in "aeiou": count += 1 print(count) - Qu'affiche ce code ?
n = 1 while n < 20: n = n * 2 print(n) - Qu'affiche ce code ?
for s in [5, 8, 3, 9]: if s > 6: print(s) break - Combien de fois ce code affiche-t-il hi ?
for i in range(2, 8): print("hi") - Qu'affiche ce code ?
word = "" for ch in "abc": word = ch + word print(word) - Mets les lignes dans l'ordre pour que le programme affiche la somme de 1 à 100.Sortie
5050
- « range(1, 10) va jusqu'à 10. » Il s'arrête avant 10, donc la dernière valeur est 9. Pour 1 à 10, écris range(1, 11).
- « Ma boucle while va bien ; elle prend juste beaucoup de temps. » Si rien dans la boucle ne change la condition, elle ne s'arrête jamais. Vérifie que la variable de la condition est mise à jour à chaque passage, et appuie sur Ctrl+C pour arrêter une boucle folle.
- « Mettre print dans la boucle ou en dehors ne change rien. » Indenté sous le for, il s'exécute à chaque passage ; en marge gauche, il s'exécute une fois après la boucle. Décide si tu veux chaque étape ou seulement la réponse finale.
- for x in list : exécute les lignes indentées une fois par élément.
- range(a, b) s'arrête avant b ; range(n) va de 0 à n - 1.
- Un accumulateur commence avant la boucle et grandit dedans.
- while répète tant qu'une condition est True ; quelque chose doit la changer.
- break quitte la boucle sur-le-champ.
Sources de ce cours (6)
- Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
- Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
- Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
- General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
- Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
- Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)
Consulté le: 2026-10-19