Python For-Loop
Du hast bei Python noch keinen Überblick? Dann bist du hier genau richtig! Wir zeigen dir, wie du einen for-Loop benutzen kannst, um einen Teil deines Programms zu wiederholen. Schaue dir auch unser Video dazu an!
Inhaltsübersicht
Python for-Schleife einfach erklärt
Mit einem for-Loop kannst du einen Teil deines Programms wiederholen. Aber wie sagst du deinem Programm, wie oft es sich wiederholen soll? Bei Python for-Loops machst du das, indem du deinem Programm zum Beispiel eine Liste gibst. Für jedes Element in deiner Liste wird deine Schleife einmal ausgeführt.
Eine for-Schleife könnte dann so aussehen:
1 list = ["a", "b", "c"]
2 for element in list:
3 print(element)
Wenn du das Programm ausführst, druckt es dir das auf deinen Bildschirm :
a
b
c
Falls du schon eine andere Programmiersprache kennst, wirst du dich wahrscheinlich etwas wundern. Ein Python for-Loop entspricht nämlich den for-each-Schleifen in anderen Sprachen.
Python for-Loop schreiben
Wie schreibst du so etwas? Zuerst brauchst du ein sogenanntes iterierbares Objekt. Das können Listen, Sets, Tupel, ein Dictionary und vieles mehr sein.
1 list = [1, 2, 3, 4, 5]
2 for element in list:
3 print(element)
4 print("ENDE")
Ausgabe:
1
2
3
4
5
ENDE
In Zeile 1 erstellst du eine Liste mit den Zahlen von 1 bis 5.
In Zeile 2 schreibst du deinen for-Loop. Zuerst kommt das Wort for. Danach ein Name für eine neue Variable (hier element
). Die Variable kannst du nur in deiner Schleife benutzen. Als nächstes kommt das Schlüsselwort in und die Liste, über die du iterieren (d.h. wiederholen) möchtest. Bei jeder Wiederholung speichert Python das aktuelle Element deiner Liste in der Variable element
.
In Zeile 3 kannst du die Variable zum Beispiel benutzen, um jedes Element der Liste einzeln auf den Bildschirm zu drucken. Aufgepasst! Vergiss nicht deine Zeile einzurücken. Zeile 4 ist nicht eingerückt, gehört also nicht mehr zum for-Loop. „Ende“ wird deshalb nur einmal gedruckt, nachdem der for-Loop fertig ist.
Natürlich kannst du auch mehrere Schleifen auf einmal benutzen. Das nennst du dann Verschachteln oder auch Nesting.
1 first_list = [1, 2, 3]
2 second_list = [4, 5]
3 for first_number in first_list:
4 for second_number in second_list:
5 print(f"{first_number} + {second_number} = {first_number+second_number}")
Ausgabe:
1 + 4 = 5
1 + 5 = 6
2 + 4 = 6
2 + 5 = 7
3 + 4 = 7
3 + 5 = 8
Python range()
Aber was tust du, wenn du einen Teil deines Programms wiederholen willst und keine Liste zum Iterieren hast? Dafür gibt es die range-Funktion. Anstelle einer Liste schreibst du in Zeile 1 die Funktion range und übergibst ihr, wie oft die Schleife ausgeführt werden soll (hier 3 Mal).
1 for i in range(3):
2 print(f"{i} Wiederholungen")
Ausgabe:
0 Wiederholungen
1 Wiederholungen
2 Wiederholungen
Dir fällt bestimmt auf, dass du in deinem for-Loop eine Variable hast, die dir sagt, wie oft du die Schleife schon wiederholt hast. Wichtig: range fängt bei 0 an zu zählen und hört deshalb schon bei 2 auf!
Du kannst aber auch ändern, wo range anfängt zu zählen. Wenn Du zwei Zahlen (z.B. 2 als Start- und 4 als Endpunkt) übergibst, fängt range bei 2 an und hört bei 3 auf. Wichtig: range schließt den Endpunkt immer aus.
1 for i in range(2, 4):
2 print(f"i = {i}")
Ausgabe:
i = 2
i = 3
Wenn du drei Zahlen übergibst, ist die dritte Zahl die Schrittweite. Mit einer Schrittweite von 2 kannst du einen Python for-Loop schreiben, der nur ungerade Zahlen druckt:
1 for i in range(1, 10, 2):
2 print(i)
Ausgabe:
1
3
5
7
9
Python continue und break
Es gibt auch Fälle, wo du nicht willst, dass deine Schleife komplett ausgeführt wird. Dafür gibt es die Befehle continue und break. Mit break beendest du den for-Loop, bevor er fertig ist. Wenn i gleich 3 ist (Zeile 3), dann bricht das Programm den Python for-Loop ab (Zeile 4) und springt zu Zeile 6.
1 list = [1, 2, 3, 4]
2 for i in list:
3 if i == 3:
4 break
5 print(i)
6 print("ENDE")
Ausgabe:
1
2
ENDE
Du kannst aber auch nur die aktuelle Wiederholung abbrechen und den Loop fortsetzen. Dafür verwendest du continue:
1 list = [1, 2, 3, 4]
2 for i in list:
3 if i == 3:
4 continue
5 print(i)
6 print("ENDE")
Ausgabe:
1
2
4
ENDE
Python for else
Zuletzt werfen wir noch einen Blick auf den for-else-Loop. Was ist an dem for-else-Loop anders? Du fügst einen neuen Codeblock hinzu, der nur einmal ausgeführt wird, wenn die Schleife fertig ist (else-Block).
Du schreibst einen normalen Python for-Loop (Zeile 2 und 3) und setzt dahinter das Wort else mit Doppelpunkten (Zeile 4). Du musst wieder alles einrücken, dass zu deinem else-Block gehört (Zeile 5).
1 list = [1, 2]
2 for j in list:
3 print(j)
4 else:
5 print("ELSE")
Ausgabe:
1
2
ELSE
Das Besondere an else ist, dass er nur ausgeführt wird, wenn du die Schleife nicht abbrichst. Brichst du deinen Loop mit break ab (Zeile 4), ignoriert Python das else und springt nach dem Loop nicht in die Zeile 7, sondern macht in Zeile 8 weiter.
1 list = [1, 2, 3, 4]
2 for i in list:
3 if i == 3:
4 break
5 print(i)
6 else:
7 print("ELSE")
8 print("ENDE")
Ausgabe:
1
2
ENDE
Python Liste
Du hast gesehen, dass du für einen Python for-Loop immer einen sogenanntes iterierbares Objekt brauchst. Das sind zum Beispiel Listen. Wenn du dir noch einmal anschauen magst, wie die funktionieren, haben wir dir dafür ein Video vorbereitet. Schaue gleich mal rein!