For-Schleifen
Willkommen in dem Abschnitt, der den Schleifen gewidmet ist!
In diesem Kapitel werden wir untersuchen, wie Schleifen als wichtiges Werkzeug zur Automatisierung sich wiederholender Aufgaben dienen und unerlässlich für die effiziente Handhabung von Listen und anderen iterierbaren Datentypen sind.
Begleiten Sie Alex, während er die Verwendung von for
-Schleifen demonstriert, um Operationen in unserem Lebensmittelgeschäft zu vereinfachen:
Die Verwendung von for
-Schleifen in Python ermöglicht es Ihnen, einen Codeblock wiederholt für jedes Element in einer Sammlung (iterierbares Objekt) auszuführen. Hier ist, was Sie über for
-Schleifen wissen müssen:
Syntax
Starten Sie eine for
-Schleife mit dem for
-Schlüsselwort, gefolgt von einem Variablennamen wie item
, um jedes Element in der Sequenz darzustellen. Dies wird gefolgt vom in
-Schlüsselwort und dann dem iterierbaren Objekt wie groceryItems
. Der Codeblock innerhalb der Schleife wird einmal für jedes Element ausgeführt.
In diesem Beispiel fungiert item
als Iteratorvariable, die nacheinander auf jedes Element in der groceryItems
-Liste zugreift und die print()
-Funktion für jedes ausführt:
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iteration bezieht sich auf den Prozess der wiederholten Ausführung eines Codeblocks. Python unterstützt zwei Haupttypen der Iteration:
Bestimmte Iteration
Bei der die Anzahl der Iterationen im Voraus bekannt ist. for
-Schleifen sind ein klassisches Beispiel, die automatisch stoppen, wenn sie das Ende der Sequenz erreichen.
Unbestimmte Iteration
Bei der die Ausführung fortgesetzt wird, bis eine bestimmte Bedingung erfüllt ist, typischerweise durch while
-Schleifen behandelt, die im kommenden Kapitel ausführlich behandelt werden.
Beispielanwendungen
for
-Schleifen in Python können mit jedem iterierbaren Objekt (lists
, tuples
, dictionaries
, strings
) verwendet werden, was eine Datenmanipulation auf Element-für-Element-Basis ermöglicht.
Egal, ob Sie Elemente in einer Liste, Schlüssel oder Werte in einem Wörterbuch oder Zeichen in einer Zeichenfolge zugreifen müssen, for
-Schleifen bieten eine klare Syntax, die den Code für sich wiederholende Aufgaben vereinfacht.
Hier ist, wie Sie eine for
-Schleife verwenden können, um über die Elemente in einer Zeichenfolge und einem Tupel zu iterieren, ähnlich wie wir es mit Listen gesehen haben:
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
Wenn Sie eine for
-Schleife mit einem Wörterbuch verwenden, wird standardmäßig über die Schlüssel des Wörterbuchs iteriert.
Hier ist, was Sie erwarten können, wenn Sie direkt über ein Wörterbuch iterieren:
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
Beachten Sie, wie die Iteratorvariable product
nur auf die Schlüssel des Wörterbuchs zugreift.
Um über die Werte eines Wörterbuchs zu iterieren, können Sie die Methode values()
verwenden.
Dies ist nützlich für Operationen, die Zugriff auf Werte erfordern, ohne die Schlüssel referenzieren zu müssen:
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
Wenn Sie gleichzeitig auf die Schlüssel und Werte zugreifen müssen, ermöglicht die Methode items()
, durch Schlüssel-Wert-Paare in einem Wörterbuch zu schleifen.
Um diese Methode in einer for
-Schleife zu verwenden, geben wir zwei Variablen vor dem in
-Schlüsselwort an — eine für den Schlüssel (product
) und eine für den Wert (stock
):
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
Hinweis
In diesem Beispiel verwenden wir f-Strings (auch bekannt als formatierte Zeichenfolgenliterale), um Variablen direkt in Zeichenfolgen einzubetten. Die Syntax ist einfach: Fügen Sie ein
f
vor dem öffnenden Anführungszeichen"
hinzu und platzieren Sie Variablen oder Ausdrücke in geschweiften Klammern{}
innerhalb der Zeichenfolge. Diese Methode macht das Kombinieren von Zeichenfolgen und Variablen in Druckanweisungen viel lesbarer, daher lohnt es sich, sie zu lernen.
Basierend auf Ihrem Wissen über if/else
, boolesche Operatoren und for
-Schleifen können wir eine einfache Bestandsprüfung an einem Wörterbuch durchführen:
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
Hinweis
Sie werden bemerken, dass wir
if
-Anweisungen innerhalb derfor
-Schleife platziert haben, was zu einer zusätzlichen Einrückung desif
-Blocks geführt hat. Wie bereits erwähnt, kann jeder eingerückte Codeblock unabhängig behandelt werden, unabhängig davon, wo er platziert ist. Der Schlüssel ist sicherzustellen, dass die Einrückung zwischen ihnen konsistent und korrekt ist.
Swipe to start coding
In dieser Aufgabe sind Sie verantwortlich für die Verwaltung des Bestands und der Aktionen eines Lebensmittelgeschäfts. Ihr Ziel ist es, durch den Bestand zu schleifen, zu überprüfen, ob ein Produkt nachbestellt werden muss, und Aktionen anzuwenden, falls sie existieren.
Code-Anweisungen
- Iterieren Sie durch die Artikel im
inventory
-Wörterbuch. - Innerhalb der Schleife rufen Sie den aktuellen Bestand und den Mindestbestand für jedes Produkt aus der Bestandsliste ab.
- Schreiben Sie eine
if
-Anweisung, die überprüft, ob der aktuelle Bestand kleiner oder gleich dem Mindestbestand ist, und eine Nachricht über die Nachbestellung auslöst. - Wenn die Nachbestellungsbedingung erfüllt ist, erhöhen Sie den aktuellen Bestand um
20
Einheiten und aktualisieren Sie den Bestand. - Vervollständigen Sie die
if
-Bedingung, um zu überprüfen, ob ein Produkt eine Aktion hat, indem Sie überprüfen, ob es existiert impromotions
-Wörterbuch.
Ausgabeanforderungen
- Für jedes Produkt drucken Sie eine Nachricht im Format:
--- Processing: <item> ---
. - Wenn ein Produkt nachbestellt werden muss, drucken Sie:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
. - Nach der Nachbestellung drucken Sie den aktualisierten Bestand:
Updated stock for <item>: <updated_stock>
. - Wenn eine Aktion für ein Produkt existiert, drucken Sie:
Promotion for <item>: <promotion_details>
. - Wenn keine Aktion existiert, drucken Sie:
No promotions for <item>
.
Lösung
Danke für Ihr Feedback!