Herhalen met for en while
range(5) levert 0, 1, 2, 3 en 4: vijf getallen, zonder 5.
Voer een lus van drie regels uit en zie total groeien
Kopieer dit programma naar IDLE en voer het vóór de uitleg uit. Verander de lijst daarna in je eigen getallen en voer opnieuw uit.
total = 0
for n in [3, 5, 2]:
total = total + n
print(n, total)
print("klaar", total)3 3
5 8
2 10
klaar 10De for-regel neemt de lijstitems één voor één. Elke doorgang verwijst n naar het volgende item en voert Python de ingesprongen regels eronder één keer uit met die waarde. Eén doorgang door de ingesprongen regels heet een iteratie. Na het laatste item gaat Python verder met de eerste niet-ingesprongen regel, dus "klaar" wordt eenmaal aan het einde afgedrukt. Een spoortabel maakt het patroon duidelijk.
| Doorgang | n | total na de doorgang | Afgedrukt |
|---|---|---|---|
| (ervoor) | 0 | ||
| 1 | 3 | 3 | 3 3 |
| 2 | 5 | 8 | 5 8 |
| 3 | 2 | 10 | 2 10 |
| (erna) | 10 | klaar 10 |
De variabele total heet een accumulator: zij begint vóór de lus op 0 en verzamelt bij elke doorgang iets. De regel total = total + n is zo gangbaar dat Python een korte vorm heeft, total += n. Tellen werkt hetzelfde met count += 1.
range() maakt de getallen voor je
Loop door range() om iets een vast aantal keren te herhalen. range(5) geeft 0, 1, 2, 3, 4: vanaf 0 tot vóór 5, net als een slice. range(1, 6) geeft 1 tot 5. Een derde getal stelt de stap in, dus range(0, 10, 2) geeft de even getallen 0 tot 8. De tafel van 7, die elke Koreaanse leerling in het tweede leerjaar opzegt, is een lus van twee regels.
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 = 63Een for-lus kan ook door de tekens van een string lopen, wat letters tellen gemakkelijk maakt.
count = 0
for ch in "banana":
if ch == "a":
count += 1
print(count)3while herhaalt zolang een voorwaarde True blijft
Een while-lus heeft geen lijst om te doorlopen. Zij controleert een voorwaarde, voert bij True de ingesprongen regels uit en controleert weer, steeds opnieuw. Dat past als je het aantal doorgangen niet vooraf weet, zoals ‘blijf sparen tot het totaal 50 000 won bereikt’. Iets binnen de lus moet de voorwaarde veranderen, anders eindigt de lus nooit. Stop in dat geval het programma met Ctrl+C.
saved = 0
weeks = 0
while saved < 50000:
saved += 12000
weeks += 1
print(weeks, saved)5 60000break verlaat een lus meteen, ook middenin. Dat helpt bij zoeken als je kunt stoppen zodra je vindt wat je wilt. De lus hieronder stopt bij de eerste score onder 60 en bekijkt de 88 nooit.
for s in [72, 91, 55, 88]:
if s < 60:
print("eerste onder 60:", s)
break
print("ok", s)ok 72
ok 91
eerste onder 60: 55| for x in ... | Voert voor elk item de ingesprongen regels eenmaal uit |
| range(a, b) | Gehele getallen vanaf a tot, maar niet inclusief, b |
| while | Herhaalt zolang de voorwaarde True is |
| accumulator | Een variabele die over doorgangen een totaal verzamelt |
| += | total += n is kort voor total = total + n |
| break | Verlaat de lus onmiddellijk |
- Wat drukt deze code af?
for i in range(3): print(i)0
1
21
2
30
1
2
33
- Wat drukt deze code af?
total = 0 for n in range(1, 5): total += n print(total) - Wat drukt deze code af?
print(list(range(0, 10, 3))) - Wat drukt deze code af?
total = 0 for n in [1, 2, 3]: total += n print(total)61
3
61
2
30
1
3
- Wat drukt deze code af?
count = 0 for ch in "seoul": if ch in "aeiou": count += 1 print(count) - Wat drukt deze code af?
n = 1 while n < 20: n = n * 2 print(n) - Wat drukt deze code af?
for s in [5, 8, 3, 9]: if s > 6: print(s) break - Hoe vaak drukt deze code hi af?
for i in range(2, 8): print("hoi") - Wat drukt deze code af?
word = "" for ch in "abc": word = ch + word print(word) - Zet de regels op volgorde zodat het programma de som van 1 tot 100 afdrukt.Uitvoer
5050
- ‘range(1, 10) gaat tot en met 10.’ Het stopt vóór 10, dus de laatste waarde is 9. Schrijf range(1, 11) voor 1 tot en met 10.
- ‘Mijn while-lus is goed; het duurt alleen lang.’ Als niets in de lus de voorwaarde verandert, stopt zij nooit. Controleer of de voorwaardevariabele elke doorgang wordt bijgewerkt en druk op Ctrl+C om een op hol geslagen lus te stoppen.
- ‘print binnen of buiten de lus zetten maakt niets uit.’ Ingesprongen onder de for wordt het bij elke doorgang uitgevoerd; aan de linkerrand eenmaal na de lus. Kies of je elke stap of alleen het eindantwoord wilt.
- for x in list: voert de ingesprongen regels eenmaal per item uit.
- range(a, b) stopt vóór b; range(n) is 0 tot n - 1.
- Een accumulator begint vóór de lus en groeit erin.
- while herhaalt zolang een voorwaarde True is; iets moet die veranderen.
- break verlaat de lus meteen.
Bronnen van deze cursus (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)
Geraadpleegd: 2026-10-19