(c) 2020/2021 Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever
In der Programmierung spielen Schleifen eine wesentliche Rolle als Grundprinzip von sich wiederholenden Aufgaben mit entsprechend veränderten Werten. Eine Wiederholung der Schleife wird dabei als Iterationsschritt bezeichnet, die gesamte Schleife oftmals auch als Iteration. In vielen Programmiersprachen bauen Schleifen eher auf arithmetisch veränderten Werten auf, z.B. wird eine Schleife über die Zahlenmenge von 1 bis x iteriert.
In Python wird dagegen in einer for-Schleife grundlegend über eine Sequenz (z.B. Liste oder Zeichenkette) iteriert. Wenn also beispielsweise eine Liste über alle Hochschulstandorte existiert:
hsliste = [
['Hochschule Augsburg','An der Hochschule',1,86161,'Augsburg'],
['Hochschulzentrum Donau-Ries','Emil-Eigner-Straße',1,86720,'Nördlingen'],
['Hochschule Kempten','Bahnhofstraße',61,87435,'Kempten'],
['Hochschulzentrum Memmingen','Am Galgenberg',1,88770,'Memmingen'],
]
dann kann über diese gesamte Liste mit einer for-Schleife und dem in-Operator iteriert werden und für jeden Listeneintrag entsprechende Berechnungen bzw. Aufgaben wieder in einem eingerückten Block erledigt werden:
for hs in hsliste:
print(hs[0],"in",hs[-1])
Es gibt in Python zudem noch das Konstrukt der while-Schleife, die solange ausgeführt wird, wie die Bedingung nach dem while-Ausdruck wahr ist:
i = 2
while i < 10:
i += 2
print(i)
%%Mooc StringAssessment
Wenn über eine Zahlensequenz iteriert werden muss, dann gibt es in Python die Funktion range(n), die in Abhängigkeit des Arguments eine entsprechende arithmetische Zahlenabfolge der Länge n, konkret von 0 bis zur Zahl n-1 erzeugt:
for i in range(5):
print(i)
Wenn die Funktion range mit zwei Argumenten besetzt wird, dann ist das erste Argument der Startwert und das zweite Argument der Stopwert:
for i in range(3,8):
print(i)
%%Mooc StringAssessment
Der break Ausdruck beendet die aktuell innerste Schleife:
for i in range(6):
if i == 4:
break
print(i)
Der continue Ausdruck springt sofort zum nächsten Iterationsschritt:
for i in range(6):
if i % 2 == 0:
print(" gerade", i)
continue
print("ungerade", i)
Es gibt auch einen else Abschnitt in Schleifen, der dann durchgeführt wird, wenn die Schleife normal durchlaufen wird und nicht durch einen break Ausdruck beendet wird:
for i in range(6):
print(i)
else:
print("fertig")
for i in range(6):
if i == 4:
break
print(i)
else:
print("fertig")
%%Mooc StringAssessment
Der pass Ausdruck tut nichts. Er kann dazu benutzt werden, wenn ein Ausdruck syntaktisch notwendig ist, aber der Ablauf keine Aktion erwartet. Z.B. um einen else-Block für eine zukünftige Verwendung vorzubereiten:n
n = 36
t = 2
if n%t == 0:
print(n,"ist teilbar durch",t)
else:
pass
%%Mooc Video
%%Mooc WebReference
%%Mooc WebReference