While-Schleifen
while
-Schleifen sind das zentrale Werkzeug für die Behandlung von unbestimmten Wiederholungen, was in Situationen nützlich ist, in denen die Anzahl der Durchläufe im Voraus nicht bekannt ist, wie zum Beispiel das Überwachen von Lagerbeständen, bis sie einen bestimmten Schwellenwert erreichen.
Sehen Sie, wie Alex demonstriert, wie man while
-Schleifen verwendet, um dynamische Situationen zu bewältigen:
Eine while
-Schleife in Python führt einen Codeblock kontinuierlich aus, solange eine bestimmte Bedingung True
bleibt.
Syntax
Um eine while
-Schleife zu starten, definiert man eine Zählvariable und folgt mit dem Schlüsselwort while
sowie einer booleschen Bedingung. Auf die Bedingung folgt ein Doppelpunkt :
, der den Beginn des Schleifenblocks kennzeichnet.
Die Schleife wird wiederholt ausgeführt, bis die Bedingung False
wird. Typischerweise wird die Zählvariable innerhalb der Schleife aktualisiert, um die Bedingung schließlich auf False
zu setzen und die Schleife zu beenden.
Betrachten Sie zum Beispiel diese while
-Schleife:
# Handling a queue at a grocery store checkout queue_length = 5 # Initial number of people in the queue while queue_length > 0: # Start the `while` loop as long as the queue isn't empty print(f"Current queue size: {queue_length}") # Simulate serving a customer print("Serving the next customer...") # Decrease the queue length by 1 as a customer leaves # The `-=` operator is a shortcut for `queue_length = queue_length - 1` queue_length -= 1
In diesem Beispiel fungiert queue_length
als unsere Zählvariable, beginnend bei 5
. Mit jeder Schleifeniteration verringert sich der Wert von queue_length
um 1
, bis er 0
erreicht. Zu diesem Zeitpunkt endet die Schleife, da die Bedingung 0 > 0
als False
ausgewertet wird.
Hinweis
Es ist entscheidend, die Zählvariable innerhalb der Schleife zu aktualisieren, um schließlich die Abbruchbedingung der Schleife zu erfüllen. Andernfalls läuft die Schleife endlos weiter und verhindert die Ausführung des restlichen Codes.
Anwendungsbeispiel
Stellen Sie sich vor, Sie verwalten den Milchvorrat in einem Supermarkt. Sie müssen sicherstellen, dass der Vorrat nicht unter ein bestimmtes Niveau fällt, und wenn dies geschieht, sollten Sie nachfüllen, um das Vorratsniveau zu halten.
Eine while
-Schleife ist in dieser Situation nützlich, da sie es ermöglicht, Milch in mehreren Schritten nachzufüllen, bis der gewünschte Vorratsstand erreicht ist. Ohne eine while
-Schleife müssten Sie die genaue Menge an Milch berechnen, die auf einmal nachgefüllt werden muss.
Beispielsweise kann ein Mitarbeiter pro Gang nur eine feste Menge Milch nachfüllen (z. B. 20
Packungen pro Nachfüllung). Ist der Vorrat noch nicht vollständig aufgefüllt, kehrt der Mitarbeiter ins Lager zurück, um eine weitere Charge Milch zu holen.
# Initial amount of milk in stock milk_stock = 15 # Minimum stock level before restocking is necessary min_stock = 50 # Quantity a worker can restock at one time restock_quantity = 20 # Start the loop to restock milk until the stock exceeds the minimum required level while milk_stock < min_stock: # If the loop is running, the condition is `True`, indicating we need more milk print(f"Milk stock is low: {milk_stock} units remaining.") # Simulate the process of restocking milk print("Restocking milk...") # Increase the stock by the quantity the worker can bring in one trip milk_stock += restock_quantity # Output the final stock level after restocking is complete print(f"Milk stock updated: {milk_stock} units, which is now sufficient.")
Hinweis
milk_stock += restock_quantity
ist gleichbedeutend mitmilk_stock = milk_stock + restock_quantity
. Es handelt sich lediglich um eine kürzere und besser lesbare Schreibweise für denselben Vorgang.
Das obige Flussdiagramm veranschaulicht die Logik der im while
-Loop verwendeten Steuerung für die Milchbestandsverwaltung. Beachten Sie, dass die Zählvariable milk_stock
, beginnend bei 15
, mit jeder Schleifeniteration um die restock_quantity
erhöht wird.
Die Schleife läuft so lange, bis milk_stock
den min_stock
Schwellenwert von 50
überschreitet; dann wird sie beendet.
Swipe to start coding
Verwaltung des Lagerbestands eines Lebensmittelgeschäfts mithilfe von while-Schleifen, um sicherzustellen, dass Bread
, Eggs
und Apples
ihre Mindestbestände erreichen. Die Nachfüllmengen sind in einem Dictionary gespeichert.
- Verwendung einer
while
-Schleife, um zu prüfen, ob"Bread"
unter dem Mindestbestand liegt. Falls ja, Erhöhung des Bestands mit der entsprechenden Nachfüllmenge aus dem Dictionary. - Anwendung derselben Logik für
"Eggs"
und"Apples"
, jeweils mit einer eigenenwhile
-Schleife. - Nach dem Auffüllen Durchlaufen des
inventory
-Dictionaries mit einerfor
-Schleife und Ausgabe der endgültigen Bestände aller Artikel.
Ausgabekriterien
- Für jeden aufgefüllten Artikel folgende Ausgabe:
"<Item> stock is low: <$current_stock> units. Restocking..."
- Nach dem Auffüllen aller Artikel Ausgabe von
Final Inventory after restocking:
gefolgt von den aktualisierten Beständen:
"<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
- Vor der finalen Inventarausgabe eine neue Zeile mit
\n
einfügen. - Verwendung von f-strings für die Formatierung und einfachen Anführungszeichen innerhalb von doppelten Anführungszeichen für Dictionary-Schlüssel.
Hinweis
Um Syntaxkonflikte in f-strings zu vermeiden, doppelte Anführungszeichen um den String und einfache Anführungszeichen im Inneren verwenden:
f"Bread stock is low: {inventory['Bread'][0]} units."
Für einen Zeilenumbruch im Output\n
verwenden:"First line.\nSecond line."
Lösung
Danke für Ihr Feedback!