Unterrichtsinhalt:
- 8.1: Was sind Schleifen?
- 8.2: [while]-Schleifen
- 8.3: [for]-Schleifen
- 8.4: range( )
- 8.5: Übungen
8.1: Was sind Schleifen?
Jetzt dass du die Basics von Programmfluss gelernt hast, ist es jetzt Zeit, tiefer in diesen Begriff zu tauchen. Während der erste Teil dieses Begriffs um die Grundlagen des Programmflusses ging, dreht sich in diesem zweiten Kapitel alles um Schleifen, also darum, was passiert, wenn bestimmte Teile deines Codes wiederholt ausgeführt werden sollen, solange eine Bedingung erfüllt ist.
Es gibt zwei Arten von Schleifen: [while]-Schleifen und [for]-Schleifen.
| [while]-Schleifen | [solange]-Schleifen; Eine [while]-Schleife prüft eine Bedingung. Wenn sie wahr ist, läuft der Codeblock immer wieder. |
| [for]-Schleifen | [für]-Schleifen; Eine [für]-Schleife wiederholt einen Codeblock für jedes Element in einer Sequenz. |
8.2: [while]-Schleifen
Wie schon gesagt prüft eine [while]-Schleife eine Bedingung und, wenn diese Bedingung noch wahr ist, läuft der Codeblock immer wieder. Ja, das heißt immer wieder. Hier ist die grundlegende Syntax:

In dieser [while]-Schleife ist die Bedingung, dass x < 10 ist. Solange x kleiner als 10 ist, erhöhe x um eins. Weil diese eine Schleife ist, wird die print( ) Funktion wiederholt, bis die Bedingung nicht wahr ist, andersgesagt bis x > 10 ist.
[+=] ist der Additionszuweisungsoperator und addiert etwas zu x
0 ist hier der Anfangspunkt und 1 ist dazu addiert, bis x mehr als 10 ist, also 11. Weil diese [while]-Schleife an dieser Stelle (um 11) nicht mehr wahr ist, hört die Schleife vor diesem Punkt auf.
Es wurde bemerkt, dass diese [while]-Schleifen immer wieder laufen können. Um diese Schleifen aufzuhören, drücke Strg + C auf der Tastatur deines Computers.
Diese Schleife…

Kann zu dieser Ausgabe führen:

…und so weiter… bis du Strg + C drückst!
Es gibt 2 hilfreiche Steuerbefehle für Schleifen, mit denen man den Ablauf beeinflussen kann.
| break | Abbruch | Abbruch der Schleife |
| continue | Fortfahren | Fortfahren mit dem nächsten Schleifendurchlauf; überspringen |
Hier sind sie in Aktion:

Die Schleife zählt von 0 hoch.
Sobald x den Wert 4 erreicht, wird [break] ausgeführt Schleife stoppt sofort.
Die Ausgabe zählt also von 0 bis 4.
x beginnt bei 0.
Bei jedem Durchlauf wird x um 1 erhöht.
Wenn x = 3 ist, springt [continue] sofort zum nächsten Schleifendurchlauf print(x) wird übersprungen und die Schleife fährt fort

Es ist aber möglich, die beiden zu haben:

[while]-Schleifen sind ideal, wenn man nicht genau weiß, wie oft ein Codeblock wiederholt werden soll. Solange die Bedingung wahr ist, läuft die Schleife weiter.
Erinnere dich und Strg + C zu drücken!
8.3: [for]-Schleifen
Im Gegensatz zu [while]-Schleifen benutzt man [for]-Schleifen, wenn man genau weiß, wie oft etwas wiederholt werden soll, besonders beim Durchlaufen einer Liste oder beim Zählen. Hier ist eine grundelegende Syntax:

[for]-Schleifen wiederholt einen Codeblock für jedes Element in einer Sequenz, hier ist das Element eine Zahl und die Sequenz ist die Liste, die “Zahlen” heißt.
Diese Schleifen bringen auch [in] zum ersten Mal zu uns. “in” ist dasselbe Wort auf Englisch und Deutsch und funktioniert hier, wie “in” auf Deutsch funktioniert: “für jedes Element [in] einer Liste, …”
Wichtig zu beachten:
- das Element nach [for], also hier “zahl”, ist willkürlich; es ist nur ein Platzhalter. Dieses könnte so heißen:

Wir haben leider keinen Käse, aber unsere [for]-Schleife funktioniert ohne ihn ganz gut!
[break] und [continue] sind nicht nur in [while]-Schleifen nutzbar, sondern auch in diesen neuen [for]-Schleifen.
8.4: die range( ) Funktion
Die Funktion range() erstellt eine Folge von Zahlen, die du in einer Schleife durchlaufen kannst, ohne eine Liste selbst schreiben zu müssen. Hier ist die grundlegende Syntax, mit einer [for]-Schleife geschrieben. [i] ist hier auch willkürlich:

range( ) kann maximal 3 Argumente akzeptieren, die in die Klammern gehen: range(x, y, z)
| Funktion mit Argumenten | Übersetzung | Erklärung |
| range( ) | Bereich( ) | erstellt eine Folge von Zahlen |
| range(x) | Bereich(stop) | Von 0 bis [stop] – 1 |
| range(x, y) | Bereich(start, stop) | Von [start] bis [stop] – 1 |
| range(x, y, z) | Bereich(start, stop, schritt) | Von [start] bis [stop] – 1 Zähle in Schritten |
Hier werden sie alle verwendet:

Die Funktion range() erstellt automatisch eine Folge von Zahlen und ist perfekt, wenn du etwas mehrmals wiederholen willst, zum Beispiel in einer [for]-Schleife.
Damit kannst du Zahlen zählen oder überspringen, ohne eine Liste schreiben zu müssen.
8.5: Übungen
Es ist endlich Zeit, diese neuen Schleifen zu üben, sodass wir fertig mit Programmsfluss sein können!
Schreibe eine while-Schleife, die die Zahlen 0 bis 2 ausgibt.
Lösung

Schreibe eine while-Schleife, die von 1 bis 5 zählt, aber die Zahl 3 überspringt.
Lösung

Herausforderung: Du bist Friseur und Elias, Felix, Emma und Karl sind deine nächsten Kunden, aber du kannst dich nicht erinnern, in welcher Sequenz sie ins Geschäft kommen werden! Mach eine Liste und lauf mit einer [for]-Schleife durch! Benutz die print( ) Funktion, sodass du die Reihenfolge sehen kannst.
Hinweis:
- die print( ) Funktion kann viele Argumente nehmen
- range(len(liste)) wird hier verwendet
Lösung

