At My Fingertips
Rapid Playground
Neben der bereits bekannten for
-Schleife gibt es in Python einen weiteren Schleifentyp, den du in dieser Aktivität kennenlernen wirst.
while
-Schleifeadaptiert nach Dalwigk, F. (2022). Python für Einsteiger: Programmieren lernen mit dem großen Python Buch - Schritt für Schritt zum Python Profi – auch ohne Vorkenntnisse! Eulogia Verlags GmbH., S. 227ff.
Während die for
-Schleife dazu dient, einen fest definierten Bereich von Elementen zu durchlaufen, hängt die while
-Schleife von einer Bedingung ab. Aber was genau bedeutet das? Im Grunde funktioniert die while
-Schleife ähnlich wie eine if
-Anweisung. Bei einer if
-Anweisung wird eine Bedingung einmal überprüft, und je nachdem, ob sie wahr oder falsch ist, wird ein bestimmter Codeblock ausgeführt. Bei einer Schleife möchtest du jedoch, dass der Codeblock mehrfach hintereinander ausgeführt wird, ohne ihn zu kopieren.
Um das Konzept der while
-Schleife zu verdeutlichen, betrachten wir zuerst die grundlegende Struktur:
while <Bedingung>:
<Anweisung 1>
<Anweisung 2>
...
<Anweisung n>
Wie du siehst, ähnelt der Aufbau einer while
-Schleife demjenigen einer for
-Schleife. Das Schlüsselwort while
leitet die while
-Schleife ein, gefolgt von einer <Bedingung>
in Form eines logischen Ausdrucks. Die <Bedingung>
endet mit einem Doppelpunkt. Solange die <Bedingung>
wahr (also True
) ist, werden alle <Anweisungen>
des Körpers sequenziell ausgeführt. Sobald die <Bedingung>
hinter dem while
nicht mehr wahr ist (also False
), wird der Körper nicht mehr ausgeführt und der Code ausserhalb der while
-Schleife fortgesetzt. Das lässt sich grafisch mit dem folgenden Flussdiagramm visualisieren:
Hallo Welt
(auf zwei Zeilen). Die Variable bedingung
wird nach der Ausgabe von "Hallo"
auf False
gesetzt. Dennoch wird der Schleifenkörper vollständig ausgeführt, bevor die Bedingung erneut überprüft wird. Daher wird auch "Welt" ausgegeben, obwohl bedingung
bereits False
ist.Suchen wir nach einem konkreten Beispiel, für welches wir die while
-Schleife verwenden können!
Sagen wir, wir möchten die Zahlen von 1
bis 50
ausgeben. Dazu definieren wir zuerst eine Variable namens zahl
und weisen ihr den Wert 1
zu. Man sagt auch, die Variable zahl
wird initialisiert.
zahl = 1
Wir möchten diese Variable nun innerhalb der while
-Schleife ausgeben. Um zu entscheiden, ob die Schleife erneut durchlaufen wird, definieren wir eine <Bedingung>
. In unserem Fall sollte die <Bedingung>
wahr sein, solange die Variable zahl
≤ 50
ist:
while zahl <= 50:
Jetzt geben wir den aktuellen Wert der Variable zahl
mithilfe der print
-Funktion aus:
print(zahl)
Da sich der Wert von zahl
nicht von alleine ändert, müssen wir in der while
-Schleife die Variable zahl
manuell erhöhen, um die gewünschten Zahlen von 1
bis 50
zu erhalten:
zahl += 1 # ist die Kurzform für zahl = zahl + 1
Das vollständige Programm sieht dann so aus:
Dieses Beispiel zeigt, dass es nicht immer sinnvoll ist, eine while
-Schleife zu verwenden.
Eine entsprechende for
-Schleife ist in so einem Fall die bessere Wahl, da sie den Code kompakter und übersichtlicher gestaltet:
Nun fragst du dich zu Recht, wofür sich denn eine while
-Schleife tatsächlich besser eignet.
Das wohl beste Beispiel ist die...
Stell dir vor, du müsstest in einer langen Liste nach einem bestimmten Namen suchen. Würdest du wirklich jedes einzelne Element durchgehen? Nein! Du durchläufst die Liste nur so lange, bis du den gesuchten Namen gefunden hast oder bis du am Ende der Liste angelangt bist.
Diese Methode ist effizienter, weil du die Suche abbrechen kannst, sobald du den Namen gefunden hast. Du musst dann nicht noch den Rest der Liste durchsuchen, was Zeit und Mühe spart.
Ein kurzes Programm in Python könnte wie folgt aussehen:
Studiere das Programm genau und ersetze die ... durch prägnante Erklärungen. Welche Begriffe/Codestücke sind zwar neu, aber für dich dennoch verständlich? Welche sind noch unklar?
Für das Arbeiten mit Grafiken der PyTamaro-Bibliothek ist die while
-Schleife zwar durchaus einsetzbar, aber nicht die erste Wahl, da dasselbe mittels for
-Schleife/n in der Regel kompakter und übersichtlicher programmiert werden kann.
Nachfolgend sei exemplarisch das Programm für eine Animation einer im Wechsel auf- und untergehenden Sonne gezeigt - einmal mit while
-Schleifen und einmal mit for
-Schleifen.
Du hast mit der while
-Schleife eine Schleifenstruktur kennengelernt, die verwendet wird, um einen Codeblock so lange wiederholt auszuführen, wie eine bestimmte Bedingung wahr ist. Mit dem Schlüsselwort break
kann eine Schleife vorzeitig verlassen werden.
Damit lässt sich bspw. die Suche nach einem Wert in einer Liste implementieren.
In der Regel ist es jedoch so, dass für die meisten Problemstellungen, die Schleifenstrukturen erfordern, inklusive der Grafikkomposition, die for
-Schleife besser geeignet ist. Sie ermöglicht kompakteren und damit übersichtlicheren Code.
This activity has been created by Lichtsteiner and is licensed under CC BY-SA 4.0.
Bedingte Schleifen
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version c08406b (Wed, 20 Nov 2024 12:30:00 GMT)