Schleifen
Inhalt
Schleifen¶
In Python gibt es zwei Schleifen. Einmal die for
und dann die while
Schleife.
For Schleife¶
Die for
Schleife wird sehr oft mit range
verwendet.
print("Iteration over range:\n")
for i in range(4):
print(i)
Iteration over range:
0
1
2
3
Die Schleife kann man auch von einen Startwert verschieden von 0 starten.
print("Iteration over range:\n")
for i in range(1, 5):
print(i)
Iteration over range:
1
2
3
4
Auch kann eine Schrittweite verschieden von 1 definieren.
print("Iteration over range:\n")
for i in range(2, 8, 2):
print(i)
Iteration over range:
2
4
6
Das Schlüsselwort break
bricht die Schleife ab.
for x in range(10):
# Check if x is even
if x > 5:
break
print(x)
0
1
2
3
4
5
Das Schlüsselwort continue
beendet die Schleife nicht, sondern setzt die Schleife mit der nächsten Iteration fortgesetzt.
for x in range(10):
# Check if x is even
if x % 2 == 0:
continue
print(x)
1
3
5
7
9
Auch Datentypen str
, list
, tuples
, set
und dict
können mit der for
Schleife sehr elegant durchlaufen werden.
print("String Iteration:\n")
for l in "Null":
print(l)
String Iteration:
N
u
l
l
print("List Iteration:\n")
l_numbers = ["Eins", "Zwei", "Drei"]
for numbers in l_numbers:
print(numbers)
List Iteration:
Eins
Zwei
Drei
print("Tuple Iteration:\n")
t_numbers = ("Eins", "Zwei", "Drei")
for i in t_numbers:
print(i)
Tuple Iteration:
Eins
Zwei
Drei
print("Set Iteration:\n")
s_numbers = {"Eins", "Zwei", "Drei"}
for i in s_numbers:
print(i)
Set Iteration:
Drei
Eins
Zwei
print("Dictionary Iteration:\n")
d = dict()
d['Eins'] = 1
d['Zwei'] = 2
d['Drei'] = 3
for i in d :
print("%s %d" %(i, d[i]))
Dictionary Iteration:
Eins 1
Zwei 2
Drei 3
For Schleife mit enumerate()
¶
l_numbers = ["Eins", "Zwei", "Drei"]
for i in range(len(l_numbers)):
print("Index: ",i ,"Element:", l_numbers[i])
Index: 0 Element: Eins
Index: 1 Element: Zwei
Index: 2 Element: Drei
Eine sehr hilfreiche BuiltIn Funktion ist enumerate()
. Gerade gemeinsam mit der for
Schleife ist diese sehr oft anzutreffen.
enumerate()
liefert einen laufenden Index und ein Element.
l_numbers = ["Eins", "Zwei", "Drei"]
for ele in enumerate(l_numbers):
print("Zahl:", ele)
Zahl: (0, 'Eins')
Zahl: (1, 'Zwei')
Zahl: (2, 'Drei')
Der Index und das Element können auch getrennt werden.
l_numbers = ["Eins", "Zwei", "Drei"]
for i, ele in enumerate(l_numbers):
print("i:", i, "Zahl:", ele)
i: 0 Zahl: Eins
i: 1 Zahl: Zwei
i: 2 Zahl: Drei
Der Startwert des Index kann angegeben werden.
l_numbers = ["Eins", "Zwei", "Drei"]
for i, ele in enumerate(l_numbers, 100):
print("i:", i, "Zahl:", ele)
i: 100 Zahl: Eins
i: 101 Zahl: Zwei
i: 102 Zahl: Drei
enumerate()
funktioniert auch gemeinsam mit tuples
.
t_numbers = ("Eins", "Zwei", "Drei")
for i, ele in enumerate(t_numbers):
print("i:", i, "Zahl:", ele)
i: 0 Zahl: Eins
i: 1 Zahl: Zwei
i: 2 Zahl: Drei
enumerate()
funktioniert auch gemeinsam mit tuples
.
s_numbers = {"Eins", "Zwei", "Drei"}
for i, ele in enumerate(s_numbers):
print("i:", i, "Zahl:", ele)
i: 0 Zahl: Drei
i: 1 Zahl: Eins
i: 2 Zahl: Zwei
enumerate()
funktioniert auch gemeinsam mit dict
, jedoch sollte der Schlüssel und der Wert gleich getrennt werden.
d_numbers = {1: "Eins", 2: "Zwei", 3: "Drei"}
for i, (key, val) in enumerate(d_numbers.items()):
print("i:", i, "key:", key, 'value', val)
i: 0 key: 1 value Eins
i: 1 key: 2 value Zwei
i: 2 key: 3 value Drei
Alternative können wir mit Hilfe des Schlüssels den Wert des Wörterbuchs auslesen.
for i, key in enumerate(d_numbers):
print("{}) key: {}, value: {}".format(i, key, d_numbers[k]))
0) key: 1, value: Drei
1) key: 2, value: Drei
2) key: 3, value: Drei
While Schleife¶
Eine typische while
Schleife sieht wie folgt aus.
i = 0
condition = True
while condition == True:
print(i)
i = i+1
if(i>5):
condition = False
0
1
2
3
4
5
Solange die Bedingung condition
erfüllt ist wird die Schleife endlos durchlaufen.
Das Schlüsselwort else
erlaubt einen Block nach der Schleife auszuführen.
i = 0
condition = True
while condition == True:
print(i)
i = i+1
if(i>5):
condition = False
else:
print("i = {} ist nicht größer als 6".format(i))
0
1
2
3
4
5
i = 6 ist nicht größer als 6
Auch hier gibt es mit break
die Möglichkeit eine Schleife abzubrechen.
i = 0
while True:
print(i)
i = i+1
if(i>5):
break
0
1
2
3
4
5
Mit continue
wird die Schleife mit der nächsten Iteration fortgesetzt.
i = 0
while i < 6:
i += 1
if i == 3 or i == 4:
continue
print(i)
1
2
5
6