NB02_Schleifen¶
(c) 2025 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
Schleifen¶
Grundlegendes¶
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.
for Schleife¶
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])
Hochschule Augsburg in Augsburg Hochschulzentrum Donau-Ries in Nördlingen Hochschule Kempten in Kempten Hochschulzentrum Memmingen in Memmingen
while Schleife¶
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)
4 6 8 10
%%Mooc StringAssessment
Schleife
Verwenden sie die folgende Zuweisung für die Variable a mit der Liste der Zahlen bis 5:
a = [1,2,3,4,5]
Berechne in einer Schleife die Summe der Quadratzahlen bis n=5
Range Funktion¶
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)
0 1 2 3 4
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)
3 4 5 6 7
%%Mooc StringAssessment
Schleife mit der Range-Funktion
Die Fibonacci-Reihe beginnt mit den Zahlen 0,1,1 und jede weitere Fibonacci-Zahl wird durch die Addition der beiden Vorgänger erzeugt (s. auch "Weitere Literatur" unten)
Verwenden sie eine Liste, in der sie die Fibonacci-Zahlen abspeichern und beginnen mit der folgende Zuweisung
a = [0,1,1]
Hängen sie in einer Schleife von n=3 bis n=10 an die obige Liste die nächsten Zahlen der Fibonacci-Reihe.
Berechne in dieser Schleife die Summe der Fibonacci-Reihe bis n=10
break und continue Ausdrücke und der else-Abschnitt in Schleifen¶
break¶
Der break Ausdruck beendet die aktuell innerste Schleife:
for i in range(6):
if i == 4:
break
print(i)
0 1 2 3
continue¶
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)
gerade 0 ungerade 1 gerade 2 ungerade 3 gerade 4 ungerade 5
else in Schleifen¶
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")
0 1 2 3 4 5 fertig
for i in range(6):
if i == 4:
break
print(i)
else:
print("fertig")
0 1 2 3
%%Mooc StringAssessment
Break
Verwenden sie eine erste, äußere Schleife von n=2 bis n=100, gehen sie anschliessend her und verwenden sie eine zweite, innere Schleife von t=2 bis t=n und fragen anschliessend in einer Bedingung ab, ob die Variable n durch die Variable t teilbar ist (indem sie n Modulo t überprüfen, ob ein Rest existiert oder nicht)
Berechnen sie die Summe der Primzahlen bis n=100
pass Ausdruck¶
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
36 ist teilbar durch 2
%%Mooc Video
Weitere Literatur¶
%%Mooc WebReference
For Statement
https://docs.python.org/3/tutorial/controlflow.html#for-statements
Hinweis: Ein kurzes Beispiel aus dem Python Tutorial mit weiteren Verlinkungen zur Syntax-Beschreibung
%%Mooc WebReference
Fibonacci-Folge
https://de.wikipedia.org/wiki/Fibonacci-Folge
Hinweis: Weiterer Hintergrund zur Fibonacci-Folge