Schleifen#
Schleifen zu verstehen ist ein wichtiger Bestandteil von Python, da diese sehr häufig in Programmen verwendet werden um Aufgaben automatisiert zu wiederholen.
for-Schleife#
Die for-Schleife wird häufig benutzt, um z.B. alle Elemente einer Liste auszugeben oder um eine bestimmte Anzahl an Durchgängen zu laufen,
for-Schleife Syntax#
for var in iterable:
statements
for ist das Schlüsselwort, damit Python weiß, dass jetzt eine for-Schleife startet.
var ist eine Variable und beinhaltet das aktuelle Element, bei der die Schleife sich gerade befindet.
Das Schlüsselwort in mit dem iterable gibt an, was durchlaufen werden soll.
Die statements sind die einzelnen Anweisungen, die ausgeführt werden sollen, wenn die Bedingung wahr ist.
Beispiel#
Gegeben ist die folgende Liste:
tiere = ['nashorn', 'delphin', 'löwe', 'hase', 'seeotter', 'orca']
Um alle Tiere auf der Console ausgeben zu lassen, müsste jedes Tier mittels einer print-Anweisung ausgegeben werden.
print(tiere[0])
print(tiere[1])
...
print(tiere[5])
Bei 6 Tieren ist das noch eine leichte Aufgabe. Bei mehr als 100 Tieren wird es sehr aufwendig. Mittels der for-Schleife können wir uns mit wenig Code alle Tiere ausgeben lassen.
for tier in tiere:
print(tier)
Mittels der for-Anweisung wird die for-Schleife gestartet.
Der erste Wert in der tiere-List wird in die Variable tier gespeichert.
Der Wert von tier wird auf der Console ausgegeben.
Das wird so lange wiederholt, wie Werte in der List vorhanden sind.
Ausgabe auf der Console.
nashorn
delphin
löwe
hase
seeotter
orca
Es können nicht nur gesamte Listen durchlaufen werden, sondern auch die Anzahl, wie oft die Schleife durchlaufen werden soll.
range-Funktion#
Um eine Anzahl zu bestimmen, wird in Python die range()-Funktion verwendet. Diese erzeugt innerhalb eines angegeben Bereiches Werte, über die die Schleife laufen kann.
Es gibt 3 Möglichkeiten die range-Funktion zu erstellen.
range(stop)
range(start, stop)
range(start, stop, schritte)
range(stop)#
Wird range nur ein Wert übergeben, erstellt die Funktion Zahlen von 0 bis zu stop. stop ist aber nicht in den Zahlen enthalten.
for i in range(3):
print(i)
0
1
2
range(start, stop)#
Mit zwei Werten wird angegeben, von welcher Zahl gestartet wird und bis zu welcher es laufen soll. stop ist nicht enthalten.
for i in range(5, 10):
print(i)
5
6
7
8
9
range(start, stop, schritte)#
Mittels drei Werten kann bestimmt werden, wie viel Abstand immer zwischen zwei Zahlen sein soll. Wenn schritte nicht angegeben wird, ist schritte immer 1.
for in range(10, 20, 2):
print(i)
10
12
14
16
18
Beispiel mit einer List#
for i in (range(0, len(tiere))):
print(tiere[i])
Mittels der for-Anweisung wird die for-Schleife gestartet.
Die Anzahl der Durchläufe wird mittels der range-Funktion erstellt. Die range-Funktion erzeugt Zahlen von 0 (Null) bis Anzahl der Tiere - 6 (Sechs)
Dann wird das Tier an der Stelle i im ersten Durchlauf - i hat den Wert 0 - ausgegeben.
Dies wiederholt sich bis alle Zahlen durchlaufen sind.
While-Schleife#
Die for-Schleife nimmt eine Zusammenstellung von Elementen entgegen und führt einen Codeblock einmal für jedes der darin enthaltenen Elemente aus. Dagegen läuft eine while-Schleife so lange, wie eine bestimmte Bedingung wahr ist.
Die while-Schleife wird immer dann eingesetzt, wenn man nicht genau weiß, wie lange die Schleife laufen soll.
while-Schleife Syntax#
while expression:
statements
while ist das Schlüsselwort, damit Python weiß, dass jetzt eine while-Schleife startet.
expression ist eine Bedingung. Sie wird auf Wahr (True) oder Falsch (False) überprüft. Zum Beispiel 5 > 4 oder wort != ‚ende‘
Die statements sind die einzelnen Anweisungen, die ausgeführt werden sollen, wenn die Bedingung wahr ist.
Beispiel#
Wenn der Benutzer Eingaben in das Programm tätigen soll, bis er das Wort „ende“ eingibt, kann man nicht wissen, wie oft der Benutzer Eingaben tätigen wird..
Mittels der while-Schleife wiederholt das Programm die Aufforderung etwas einzugeben, bis „ende“ eingegeben wird.
message = ''
while message != 'ende':
message = input('Geben Sie eine Zahle ein. "ende" beendet die Eingabe. ')
print(message)
In der ersten Zeile wird eine Variable mit einem leeren String angelegt.
Dann wird die while-Schleife gestartet. Die Bedingung, die überprüft wird ist, ob der Wert von message ungleich ‚ende‘ ist. Dies ist wahr, da der Wert von message ein leerer String ist.
Dann wird der Wert von message mittels input überschrieben. Die Benutzereingabe wird als Wert für message genommen.
Dann wird der Wert von message auf der Console ausgegeben.
Nun wird wieder überprüft, ob message den Wert ungleich ‚ende‘ hat.
Wurde ‚ende‘ eingegeben, wird die while-Schleife beendet und das Programm läuft weiter.