4.2 Schleife
In diesem Kapitel lernen Sie die Schleifenstrukturen in Python kennen.
Übersicht Schleifenarten
In Python gibt es zwei Haupttypen von Schleifen, um Codeblöcke wiederholt auszuführen: for
-Schleifen und while
-Schleifen.
Schleifenart | Beschreibung |
---|---|
while -Schleife |
Wiederholt eine Sequenz von Anweisungen, solange eine Bedingung erfüllt ist. Eine while -Schleife ist gut, wenn die Anzahl der Schleifendurchläufe nicht klar ist. |
for -Schleife |
Wiederholt eine Sequenz von Anweisungen für jedes Element einer Sammlung (z.B. Liste, Tupel, String). Eine for -Schleife ist gut, wenn die Anzahl der Schleifendurchläufe definiert ist. |
Die while
-Schleife kennen wir schon.
Verwendung der while
-Schleife
Eine while
-Schleife wird verwendet, wenn Sie eine Schleife benötigen, die solange läuft, bis eine bestimmte Bedingung nicht mehr erfüllt ist oder bis eine bestimmte Bedingung endlich erfüllt ist.
Beispiele für while
-Schleifen
-
Endlosschleife
-
Einfaches Beispiel
Diese Problemstellung kann man besser mit einer for-Schleife lösen, da die Anzahl der Durchläufe klar ist.
Die while-Schleife verwendet man, wenn eine Endlosschleife benötigt wird oder wenn unklar ist, wie lange es dauert, bis der Zustand True
erreicht wird (beispielsweise bei der unbeschränkten Möglichkeit ein Passwort richtig einzugeben).
Verwendung der for
-Schleife
Eine for
-Schleife wird verwendet, wenn wir eine festgelegte Anzahl von Iterationen durchlaufen möchten oder über eine Sammlung von Elementen iterieren müssen.
Auch bei Schleifen die richtige Einrückung entscheidend. Jeder Codeblock, der zu einer Schleife gehört, muss entsprechend eingerückt werden, um die Struktur des Programms korrekt darzustellen.
Beispiele für for
-Schleifen
-
Einfaches Beispiel
Das
Ergebnis:i
ist hier eine Laufvariable, die nach nach dem Beenden der for-Schleife den letzten wert beibehält (alsoi=4
)
Durchlauf: 0
Durchlauf: 1
Durchlauf: 2
Durchlauf: 3
Durchlauf: 4
-
Iteration über eine Liste
Hier ist nun
Ergebnis:farbe
die Laufvariable
rot
grüne
blau
-
Iteration über ein Dictionary - Keys verwenden
Ergebnis:
name
ort
-
Iteration über ein Dictionary - Values verwenden
Ergebnis:
Alice
Wunderland
-
Iteration über ein Dictionary - Keys und Values verwenden
Ergebnis:
name Alice
ort Wunderland
-
Verschachtelte Schleifen
Die Ausgabe lautet:
0 0
0 1
1 0
1 1
2 0
2 1
Aufgabe verschachtelte Schleife
Wie lautet die Ausgabe nun?
Verwendung von break
und continue
In Python können Sie die Anweisungen break
und continue
verwenden, um den Fluss einer Schleife zu steuern:
break
: Bricht die Schleife vollständig ab und fährt mit dem nächsten Codeblock nach der Schleife fort.continue
: Überspringt den aktuellen Schleifendurchlauf und beginnt mit dem nächsten Durchlauf.
Beispiel für break
und continue
Klausurrelevant
In der Prüfung müssen Sie in der Lage sein, sowohl for
-Schleifen als auch while
-Schleifen anzuwenden und auch zu verstehen, wie Sie break
und continue
sinnvoll einsetzen.
Pi Pico Script
Wir nehmen das Pi Pico-Board und lassen die interne LED blinken, wobei die Blinkdauer mithilfe einer Schleife und Listen variiert wird.
In diesem Code wird die Variable duration
in den for
-Schleifen verwendet, um die Dauer (in Sekunden) zu speichern, die die LED bei jedem Schritt ein- bzw. ausgeschaltet bleibt. Das Wort duration
wurde gewählt, damit klar wird, dass es sich um eine Zeitdauer handelt.
Die Schleife for duration in sos:
bedeutet, dass die Variable duration
nacheinander die Werte aus der Liste sos
annimmt, also erst 0.2
, dann 0.2
, dann 0.2
usw. Für jeden dieser Werte wird die LED für die entsprechende Dauer eingeschaltet, dann eine kurze Pause gemacht, und der Vorgang wird für das nächste Element in der Liste wiederholt.
Es ist wichtig zu verstehen, dass der Name duration
nur eine Hilfsvariable ist. Man könnte diese Variable auch i
, step
oder einen anderen beliebigen Namen nennen. Der Name sollte jedoch sinnvoll gewählt werden, um den Code lesbarer zu machen. Wenn Sie duration
verwenden, ist sofort klar, dass es sich um die Dauer der LED-Leuchtdauer handelt. Wenn Sie stattdessen i
oder step
verwenden würden, wäre die Bedeutung weniger offensichtlich, aber der Code würde genauso funktionieren.
Aufgabe (Klausurniveau)
Schreiben Sie ein Script, das SOS morsen lässt, indem Sie ein dictionary
verwenden, um die Morsezeichen für die Buchstaben S
und O
zu speichern. Verwenden Sie das dictionary
, um die LED entsprechend blinken zu lassen.
Lösung
Aufgabe (Klausurniveau)
Schreiben Sie ein Script, das die LED 10 Mal mit abnehmender Geschwindigkeit blinken lässt.
Lösungen
Aufgabe Bewegen auf dem Display
- Schreiben Sie ein Script, das "Moin" auf dem Display zeigt.
- Nun soll "Moin" auf dem Display von oben nach unten wandern. Verwenden Sie dafür eine for-Schleife