Loop-Bedingungen und Statements Schleifen in Python richtig nutzen

Autor / Redakteur: Thomas Joos / Stephan Augsten

Um Abschnitte im Programmcode zu wiederholen, setzt auch Python auf Schleifen. Zum Einsatz kommen While- und For-Schleifen. Der Beitrag zeigt, welche Möglichkeiten es gibt, Schleifen richtig zu nutzen.

Firma zum Thema

In der Programmierung und Datenverarbeitung sind Schleifen unabdingbar.
In der Programmierung und Datenverarbeitung sind Schleifen unabdingbar.
(Bild: amusementcentral_)

Ein paar kurze Begriffserklärungen zum Anfang: Der Schleifenkopf bestimmt die Bedingung der Schleife. Der Programmcode, der in einer Schleife wiederholt wird, trägt auch die Bezeichnung „Schleifenkörper“. Sobald der Schleifenkörper abgearbeitet wurde, kann die Bedingung einen Sprung zum Anfang der Schleife veranlassen, so dass der Schleifenkörper von vorne abgearbeitet wird.

Einfache Schleifen werden in der Programmierung meistens mit dem „while“-Statement gelöst, das gilt auch für Python. Hierbei wird die Schleife ausgeführt, solange (engl: while) eine Bedingung wahr ist. Etwas komplexer funktioniert die Wiederholung in einer „for“-Schleife, die auch als Zählschleife bezeichnet wird.

Sobald eine bei einer While-Schleife der Wert der Bedingung eintrifft, wird die Bedingung die Schleife auszuführen zu False. Das bedeutet, dass der Schleifenkörper nicht mehr ausgeführt wird, und zum Ende der Schleife gesprungen wird.

Meistens wird in Schleifen mit Variablen gearbeitet, die sich während dem Ablauf der Schleife ändert. Trifft der Wert einer Variablen mit der definierten Bedingung in einer While-Schleife zu, beendet das Programm die Schleife. Bei der Variablen kann es sich auch um einen Zähler handeln, mit dem festgelegt wird, wie lange die Schleife abgearbeitet werden soll.

While-Schleifen – Codeausführung bis zum Erfüllen von Bedingungen

While-Schleifen werden in Python genutzt, wenn Abschnitte in einem Programm so lange ausgeführt werden sollen, bis eine bestimmte Bedingung eintrifft. Im Schleifenkopf wird zusammen mit while auch die Bedingung festgelegt. Wenn die Bedingung der While-Schleife den Wert „true“ liefert, führt Python den Schleifenkörper aus, wenn die Bedingung eintrifft, wird der Wert der Ausführung der Schleife zu False.

In diesem Fall springt das Programm an das Ende des Schleifenkörpers und fährt mit der Ausführung des Programmes fort. Der Übersicht halber wird der Programmcode des Schleifenkörpers um eine Stufe eingerückt. Der Code nach dem Schleifenkörper rückt wieder um eine Stufe nach links. Schleifen können natürlich auch verschachtelt werden.

In den meisten Fällen wird hier mit einem Zähler gearbeitet oder einer Variablen, deren Wert sich im Schleifenkörper solange ändert, bis eine bestimmte Bedingung eintrifft. Bevor in der While-Schleife der Schleifenkörper erneut durchgeführt wird, prüft das Programm erst, ob die Bedingung der Variablen bereits eintrifft.

Zählschleifen mit While nutzen

Bei einer Zählschleife wird der Anfangswert einer Variablen auf einen festgelegten Wert gesetzt. Im Schleifenkörper wird der Wert so lange geändert, bis die Bedingung für die Ausführung der Schleife False ist, zum Beispiel:

x = 0
while x < 5:
   print( x )
   x += 1

Hier wird die Schleife so lange ausgeführt, solange x von 0 bis 4 wächst. Der Wert muss < 5 sein, das heißt bei X=5 führt die Schleife den Schleifenkörper nicht noch einmal aus. Ab dem Wert 5 von x ist die Bedingung der Schleife False und der Schleifenkörper wird übersprungen. In diesem Beispiel gibt das Programm 0,1,2,3,4 aus und beendet die Schleife.

In der While-Zeile steht am Ende der Bedingung ein Doppelpunkt. Beim Definieren der Bedingung für eine Schleife kann mit „and“ auch eine weitere Bedingung für eine Schleife definiert werden.

Endlosschleifen

Wenn die Bedingung einer While-Schleife niemals den Wert False annimmt, läuft die Schleife endlos. Das bedeutet, der Schleifenkörper wird nie verlassen. Oft werden Endlosschleifen nicht mit Absicht programmiert, sondern es liegt ein Fehler in der Programmierung vor, hier eine fehlende Inkrementierung:

x = 0
while x < 5:
   print( x )

Schleifen abbrechen und mehrere Bedingungen verwenden

Mit dem „break“-Befehl an einer Stelle des Schleifenkörpers besteht die Möglichkeit, Schleifen abzubrechen. Diese Abbruchbedingung wird oft an eine If-Bedingung geknüpft. Mit „else“ lässt sich dann noch definieren, was passieren sollen, wenn die Bedingung bei „if“ nicht eintrifft.

For-Schleifen in Python nutzen

Neben While-Schleifen werden in Python häufig auch For-Schleifen eingesetzt. For-Schleifen in Python werden zur Iteration von Objektsequenzen verwendet. Der Schleifenkopf bei einer For-Schleife besteht daher zunächst aus dem Schlüsselwort „for“. Danach kommt ein Bezeichner, dann das Schlüsselwort „in“ und schließlich das iterierbare Objekt:

For <Variable> in <Objekt>:
   Anweisungen

Auch bei For-Schleifen ist der Schleifenkörper um eine Einheit eingerückt. Auf das jeweilige Element des verwendeten, iterierbaren Objekts kann im Schleifenkörper zugegriffen werden. Beispiel:

orte = ["Berlin", "Stuttgart", "Frankfurt", "Hamburg"]
for x in orte:
print( x )

Die Ausgabe der Schleife ist:

Berlin
Stuttgart
Frankfurt
Hamburg

Mit For-Schleifen können daher Listen durchgearbeitet werden, und für jedes Element aus einer Liste bestimmte Aktionen durchgeführt werden. Im oberen Beispiel gibt die For-Schleife die Orte nacheinander aus, die vor der Schleife definiert wurden. Ein weiteres Beispiel ist:

for x in „Thomas“:
print(x)

Hier arbeitet die For-Schleife den String „Thomas“ ab und zeigt nacheinander die Buchstaben an. Die Ausgabe in diesem Beispiel ist:

T

h

o

m

a

s

For-Schleifen können für verschiedene Datentypen genutzt werden. Dazu kommt, dass For-Schleifen ebenfalls mit „break“ abgebrochen werden können. Auch die Verwendung von „If….else“ ist mit For-Schleifen möglich.

Zählschleifen in Python: Funktion range nutzen

Mit For-Schleifen kann die Funktion „range“ genutzt werden. Diese Funktion erzeugt ein iterierbares Objekt, das in der For-Schleife nutzbar ist. Hier sind zum Beispiel ganze Zahlen in einem Bereich nutzbar. Mit „range()“ werden Listen erzeugt, die im Grunde arithmetischen Aufzählungen entsprechen Ein Beispiel dafür ist , das Summieren der Zahlen von 1 bis 10:

n = 10
x = 0
for i in range(1, n+1):
   x = x + i
print (x)

Bei diesem Beispiel wertet Python die Funktion „range(1, n+1)“ aus. Dabei wird eine Liste Zahlen erzeugt. Diese Zahlen nutzt die Schleife zum Berechnen und verwendet dabei auch die Variablen, die vor der Schleife erzeugt wurden.

Mit „range“ kann auch ein fester Bereich definiert werden sowie die Schritte, die zum Erzeugen der Elemente des Objects genutzt werden sollen: „range(1, 100, 2)“. Hier wird eine Liste von ganzen Zahlen zwischen 1 und 100 in 2er-Schritten erstellt. Das lässt sich auch rückwärts durchführen mit „range (100, 1, -2).

For-Schleifen und While-Schleifen können miteinander verschachtelt werden. Es ist problemlos möglich in einer While-Schleife eine For-Schleife zu nutzen, oder auch Kombinationen der Schleifentypen untereinander.

(ID:47112450)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist