Wiederholen mit for und while
range(5) erzeugt 0, 1, 2, 3 und 4: fünf Zahlen, und 5 gehört nicht dazu.
Lass eine Schleife mit drei Zeilen laufen und sieh total wachsen
Kopiere dieses Programm in IDLE und führe es aus, bevor du die Erklärung liest. Ändere dann die Liste in deine eigenen Zahlen und führe es noch einmal aus.
total = 0
for n in [3, 5, 2]:
total = total + n
print(n, total)
print("done", total)3 3
5 8
2 10
done 10Die for-Zeile nimmt die Einträge der Liste nacheinander. Bei jedem Durchlauf bezieht sich die Variable n auf den nächsten Eintrag, und die eingerückten Zeilen darunter laufen einmal mit diesem Wert. Ein Durchgang durch die eingerückten Zeilen heißt Iteration. Nach dem letzten Eintrag macht Python mit der ersten nicht eingerückten Zeile weiter, "done" wird also einmal am Ende ausgegeben. Eine Ablauftabelle macht das Muster klar.
| Durchlauf | n | total nach dem Durchlauf | Ausgegeben |
|---|---|---|---|
| (vorher) | 0 | ||
| 1 | 3 | 3 | 3 3 |
| 2 | 5 | 8 | 5 8 |
| 3 | 2 | 10 | 2 10 |
| (nachher) | 10 | done 10 |
Die Variable total heißt Akkumulator: Sie beginnt vor der Schleife bei 0 und sammelt bei jedem Durchlauf etwas. Die Zeile total = total + n ist so häufig, dass Python eine Kurzform hat, total += n. Das Zählen funktioniert genauso mit count += 1.
range() erzeugt die Zahlen für dich
Um etwas eine feste Anzahl von Malen zu wiederholen, durchlaufe range(). range(5) ergibt 0, 1, 2, 3, 4: Es beginnt bei 0 und hört vor 5 auf, genau wie ein Slice. range(1, 6) ergibt 1 bis 5. Eine dritte Zahl legt die Schrittweite fest, range(0, 10, 2) ergibt also die geraden Zahlen 0 bis 8. Das Einmaleins der 7, das jedes koreanische Kind in der zweiten Klasse aufsagt, ist eine Schleife aus zwei Zeilen.
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 = 63Eine for-Schleife kann auch durch die Zeichen eines Strings gehen, was das Zählen von Buchstaben leicht macht.
count = 0
for ch in "banana":
if ch == "a":
count += 1
print(count)3while wiederholt, solange eine Bedingung True bleibt
Eine while-Schleife hat keine Liste zum Durchlaufen. Sie prüft eine Bedingung, führt die eingerückten Zeilen aus, wenn sie True ist, und prüft wieder, immer wieder. Das passt zu Aufgaben, bei denen du die Zahl der Durchläufe vorher nicht kennst, etwa „spare weiter, bis die Summe 50 000 Won erreicht“. Etwas in der Schleife muss die Bedingung ändern, sonst endet die Schleife nie. Passiert das, stoppe das Programm mit Strg+C.
saved = 0
weeks = 0
while saved < 50000:
saved += 12000
weeks += 1
print(weeks, saved)5 60000break verlässt eine Schleife sofort, auch mittendrin. Es ist praktisch, wenn du suchst und aufhören kannst, sobald du findest, was du willst. Die Schleife unten stoppt beim ersten Ergebnis unter 60 und sieht die 88 nie an.
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 ... | Führt die eingerückten Zeilen einmal für jeden Eintrag aus |
| range(a, b) | Ganze Zahlen von a bis ausschließlich b |
| while | Wiederholt, solange die Bedingung True ist |
| Akkumulator | Eine Variable, die über die Durchläufe eine Summe sammelt |
| += | total += n ist die Kurzform von total = total + n |
| break | Verlässt die Schleife sofort |
- Was gibt das aus?
for i in range(3): print(i)0
1
21
2
30
1
2
33
- Was gibt das aus?
total = 0 for n in range(1, 5): total += n print(total) - Was gibt das aus?
print(list(range(0, 10, 3))) - Was gibt das aus?
total = 0 for n in [1, 2, 3]: total += n print(total)61
3
61
2
30
1
3
- Was gibt das aus?
count = 0 for ch in "seoul": if ch in "aeiou": count += 1 print(count) - Was gibt das aus?
n = 1 while n < 20: n = n * 2 print(n) - Was gibt das aus?
for s in [5, 8, 3, 9]: if s > 6: print(s) break - Wie oft gibt das hi aus?
for i in range(2, 8): print("hi") - Was gibt das aus?
word = "" for ch in "abc": word = ch + word print(word) - Bringe die Zeilen in die richtige Reihenfolge, damit das Programm die Summe von 1 bis 100 ausgibt.Ausgabe
5050
- „range(1, 10) geht bis 10.“ Es hört vor 10 auf, der letzte Wert ist also 9. Für 1 bis 10 schreibe range(1, 11).
- „Meine while-Schleife ist in Ordnung; sie dauert nur lange.“ Ändert nichts in der Schleife die Bedingung, stoppt sie nie. Prüfe, dass die Variable in der Bedingung bei jedem Durchlauf aktualisiert wird, und drücke Strg+C, um eine außer Kontrolle geratene Schleife zu stoppen.
- „Ob print innerhalb oder außerhalb der Schleife steht, macht keinen Unterschied.“ Unter dem for eingerückt läuft es bei jedem Durchlauf; am linken Rand läuft es einmal nach der Schleife. Entscheide, ob du jeden Schritt willst oder nur die Endantwort.
- for x in list: führt die eingerückten Zeilen einmal pro Eintrag aus.
- range(a, b) hört vor b auf; range(n) ist 0 bis n - 1.
- Ein Akkumulator beginnt vor der Schleife und wächst in ihr.
- while wiederholt, solange eine Bedingung True ist; etwas muss sie ändern.
- break verlässt die Schleife sofort.
Quellen zu diesem Kurs (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)
Abgerufen: 2026-10-19