Video

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
Studyflix vernetzt: Hier ein Video aus einem anderen Bereich

Nach Beantwortung speichern wir deine Antwort, um Studyflix zu verbessern. Mehr dazu erfährst du in unserer Datenschutzerklärung.

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!

Zum Video: Python Liste
Zum Video: Python Liste

Python For-Loop — häufigste Fragen

(ausklappen)
  • Was ist der Unterschied zwischen for element in einer Liste und for i in range?
    Der Unterschied zwischen for element in liste und for i in range(...) liegt darin, was die Schleife nacheinander liefert. Bei einer Liste bekommt die Schleifenvariable direkt jedes Listenelement. Bei range(...) bekommt die Schleifenvariable nacheinander Zahlen, also Zählwerte.
  • Wie bekommt man in einer for-Schleife gleichzeitig den Index und den Wert aus einer Liste?
    Index und Wert bekommt man in einer for-Schleife gleichzeitig mit enumerate(...) (liefert Index und Wert). Zum Beispiel: for index, wert in enumerate(liste): print(index, wert). Dann ist index die Position in der Liste und wert das dazugehörige Element.
  • Wie zählt man mit range in einer for-Schleife rückwärts?
    Rückwärts zählt man mit range(...), indem man eine negative Schrittweite benutzt. Zum Beispiel: for i in range(5, 0, -1): print(i). Dann nimmt i die Werte 5, 4, 3, 2, 1 an.
  • Wie durchläuft man ein Dictionary in einer for-Schleife?
    Ein Dictionary durchläuft man in einer for-Schleife standardmäßig über die Schlüssel. Wenn man Schlüssel und Wert zusammen braucht, benutzt man d.items() (Schlüssel-Wert-Paare). Zum Beispiel: for key, value in d.items(): print(key, value).

Schleifen verstehen

Der Python For-Loop ist ein Grundbaustein der Programmierung und gehört zum Themenfeld Schleifen. Du ordnest typische Wiederholungen im Code ein und schaust, wie oft ein Block wirklich ausgeführt wird. So erkennst du schneller, welche Zeilen zu einem Block gehören und warum kleine Zählfehler große Unterschiede machen. Im Informatikbereich findest du passende Videos zu diesem und verwandten Themen.

Was ist dein nächster Schritt?
Nächstes Video anschauen
Python range()
Python range()
Python
Text zum aktuellen Video lesen
Lernen lohnt sich! Entdecke hier deine Chancen.