Zum Inhalt springen

Python for-Schleife – einfach erklärt!

  • Python

Die Python for-Schleife wird genutzt, um dynamisch über eine Sequenz von Objekten zu iterieren und mit diesen beispielsweise Berechnungen durchführen zu können. Sie geht automatisch auf unterschiedliche Längen der Objekte ein und kann dadurch Arbeit bei der Programmierung sparen.

Wozu benötigt man eine for-Schleife?

In der Programmiersprache Python werden for-Schleifen vor allem für die Arbeit mit Python Lists genutzt, um die Objekte innerhalb der Liste zu verändern oder für eine anderweitige Berechnung nutzen zu können. Der Vorteil durch die Nutzung der Schleife ist, dass man nicht die Länge der Liste oder die einzelnen Indizes von Objekten kennen muss.

Die for-Schleife in Python unterscheidet sich dabei massiv von denen, die man aus anderen Programmiersprachen kennt. In diesen wird sie lediglich als Alternative zur while-Schleife genutzt, also um eine Berechnung so lange durchzuführen, wie eine Bedingung erfüllt ist. In Python hingegen ist sie speziell für die Arbeit mit Objekten und vor allem Listen gedacht.

Wie ist die Syntax der Python for-Schleife?

Der Aufbau einer for-Schleife ist immer relativ ähnlich und beginnt mit dem Wort „for“. Anschließend folgt der Variablenname, dessen Wert sich mit jedem Durchlauf verändert. In unserem Fall nennen wir diese „variable“ und durchlaufen das Objekt „object“. Die Variable nimmt also in jedem Durchlauf den Wert des Elements an, das eben gerade an der Reihe ist. Das Wort „in“ trennt den Variablennamen und den Namen des Objekts, das durchlaufen wird:

Python for-Schleife

Die Zeile endet mit einem Doppelpunkt und die nächste Zeile startet dann mit einer Einrückung. Jede Zeile, die nach der for-Angabe eingerückt ist, wird in einem Durchlauf ausgeführt. Hier können Berechnungen ausgeführt werden oder wie in unserem Beispiel einfach nur die Elemente der Liste ausgegeben werden:

Python for-Schleife

Was ist die range() Funktion?

Falls man den for-Loop nicht für die Iteration über ein konkretes Objekt nutzen will, sondern lediglich damit ein Befehl mehrfach ausgeführt wird, dann wird die range() Funktion genutzt. Sie wird anstelle des Objektnamens geschrieben und definiert einen Wertebereich, der durchlaufen wird. Für diese Funktion gibt es insgesamt drei Angaben: range(start, stop, step). Man kann also angeben, bei welcher Zahl die Funktion starten soll, dies ist per Default 0. Außerdem kann man angeben, bei welchem Wert die Funktion stoppen soll und wie groß die Schrittweite ist, hier ist der Default 1.

Python for-Schleife

Wenn man der range() Funktion lediglich einen Wert übergibt, dann ist dies automatisch der Stop-Wert mit Start-Wert 0 und der Schrittlänge 1.

Python for-Schleife

Mit der Übergabe von zwei Werten, setzt man den Start-Wert und den Stop-Wert:

Python For-Schleife

Wie lassen sich komplexere for-Schleifen bilden?

Wie bereits beschrieben, werden in jedem Durchlauf alle Codezeilen ausgeführt, die nach der for-Schleife eingerückt sind. Damit kann man auch komplexere Zusammenhänge abbilden und beispielsweise eine if-else-Schleife einbauen:

Python for-Schleife

Wie kann man die for-Schleife in einer Zeile schreiben?

Bisher haben wir gelernt, dass die Python For-Schleife immer nach dem Doppelpunkt einen Zeilenumbruch hat und in der nächsten Zeile mit einer Einrückung weitergeht. Um den Code kompakter zu gestalten oder Zeit zu sparen, gibt es auch die Möglichkeit eine Python For-Schleife in einer einzigen Zeile zu schreiben, je nachdem wie komplex sie ist. Das obere Beispiel, welches die Zahlen zwischen 2 und 5 ausgibt, lässt sich sehr einfach in einer einzigen Zeile schreiben:

Python for-Schleife

Bei komplexeren for-Schleifen kann die Darstellung in einer Zeile auch schnell unübersichtlich werden, wie unser Beispiel mit den geraden und ungeraden Zahlen zeigt:

Python for-Schleife

Besonders elegant ist die Erstellung einer Liste oder eines Dictionaries mithilfe einer for-Loop, die dann meist auch in einer Zeile definiert ist:

Python for-Schleife

Wenn man dies mit einer „regulären“ Python for-Schleife lösen würde, müsste man zuerst eine leere Liste erstellen und diese dann nach und nach füllen. Das ist deutlich umständlicher:

Python for-Schleife

Was machen break und continue in einer for-Schleife?

Nicht immer soll eine Python for-Schleife bis ans Ende der Schleife laufen. In manchen Fällen kann es auch Sinn machen, den Ablauf frühzeitig zu beenden. Dazu kann man den Befehl „break“ nutzen. Im folgenden Beispiel wird die Schleife unterbrochen, sobald die aktuelle Zahl größer als 4 ist.

Python for-Schleife

Der Befehl „continue“ ist das genaue Gegenteil zu „break“ und führt dazu, dass die Schleife weiterhin durchlaufen wird. Er macht vor allem dann Sinn, wenn man für eine Bedingung keinen direkten Befehl zur Ausführung hat, sondern lediglich eine Runde in der Schleife starten will.

In dem folgenden Beispiel wollen wir lediglich die Zahlen ausgeben, die größer als vier sind. Dazu überspringen wir alle Werte, die kleiner oder gleich vier sind mithilfe von „continue“. Dadurch werden nur die Zahlen von fünf aufwärts ausgegeben:

Python for-Schleife

Wie funktioniert enumerate in einer Schleife?

Mithilfe von „enumerate“ kann man nicht nur durch die Elemente eines Objektes, wie beispielsweise einer Liste, iterieren, sondern auch gleichzeitig noch den Index des jeweiligen Elements erhalten. Das kann beispielsweise Sinn machen, wenn man die Elemente einer Liste auch direkt ändern will.

Angenommen wir wollen jede ungerade Zahl in der Liste „numbers“ mit zwei multiplizieren. Dazu durchlaufen wir das Objekt „numbers“ mit „enumerate“ und verändern die Zahl in der Liste, wenn das Element ungerade ist. Wichtig ist hierbei zu beachten, dass wir nun zwei Namen vergeben müssen, da jeder Iterationsschritt zwei Variablen, nämlich den Index und das Element selbst, hat.

Python for-Schleife

Hierbei ist wichtig zu verstehen, dass Änderungen an dem Objekt, über das man gerade iteriert, keine Auswirkungen auf die Python for-Schleife haben. Sie sieht das Objekt immer noch so an, wie beim allerersten Durchlauf. Der folgende Befehl müsste sonst zu einer unendlichen Schleife führen, da das Element „numbers“ in jedem Durchlauf doppelt so lang wird wie davor. Trotzdem hat die Python for-Schleife nur neun Schritte, da zum Start der Schleife das Objekt „numbers“ nur neun Elemente hatte.

Python for-Schleife

Das solltest Du mitnehmen

  • Die Python for-Schleife wird genutzt, um dynamisch durch Elemente eines Objektes iterieren zu können.
  • Mithilfe von „break“ kann man eine Schleife vorzeitig beenden.
  • Der Befehl „enumerate“ liefert nicht durch in jeder Runde ein Element, sondern auch den Index des Elements in dem Objekt. Dadurch lässt sich beispielsweise auch das Objekt aus der Schleife heraus ändern.

Andere Beiträge zum Thema Python for-Schleife

close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner