For-loopar
Välkommen till avsnittet om loopar!
I detta kapitel fördjupar vi oss i hur loopar fungerar som ett nyckelverktyg för automatisering av repetitiva uppgifter och är avgörande för effektiv hantering av listor och andra itererbara datatyper.
Följ med Alex när han visar hur for
-loopar kan förenkla arbetsmoment i vår livsmedelsbutik:
Användningen av for
-loopar i Python möjliggör att en kodblock upprepas för varje objekt i en samling (itererbart objekt). Här är vad som är viktigt att känna till om for
-loopar:
Syntax
En for
-loop initieras med nyckelordet for
, följt av ett variabelnamn såsom item
för att representera varje element i sekvensen. Detta följs av nyckelordet in
och därefter det itererbara objektet, till exempel groceryItems
. Kodblocket inuti loopen körs en gång för varje element.
I detta exempel fungerar item
som iteratorvariabel som sekventiellt hämtar varje element i listan groceryItems
och kör funktionen print()
för varje:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iteration avser processen att upprepat köra ett kodblock. Python stöder två huvudtyper av iteration:
Definitiv iteration
Där antalet iterationer är känt i förväg. for
-loopar är ett klassiskt exempel och avslutas automatiskt när de når slutet av sekvensen.
Indefinitiv iteration
Där exekveringen fortsätter tills ett specifikt villkor uppfylls, vilket vanligtvis hanteras av while
-loopar, som kommer att behandlas mer ingående i nästa kapitel.
Exempel på användningsområden
for
-loopar i Python kan användas med alla itererbara objekt (lists
, tuples
, dictionaries
, strings
), vilket möjliggör datamanipulation per element.
Oavsett om du behöver komma åt objekt i en lista, nycklar eller värden i en dictionary, eller tecken i en sträng, erbjuder for
-loopar tydlig syntax som förenklar kod för repetitiva uppgifter.
Här är hur du kan använda en for
-loop för att iterera över elementen i en sträng och en tuple, på liknande sätt som vi såg med listor:
123456789# 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)
När du använder en for
-loop med en dictionary, kommer iteration direkt över dictionaryn att loopa genom dess nycklar som standard.
Här är vad du kan förvänta dig när du itererar direkt över en dictionary:
1234567# 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)
Observera att iteratorvariabeln product
endast kommer åt ordbokens nycklar.
För att iterera över värdena i en ordbok kan du använda metoden values()
.
Detta är användbart för operationer som kräver åtkomst till värden utan att behöva referera till nycklarna:
1234567# 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)
Om du behöver komma åt nycklar och värden samtidigt, gör metoden items()
det möjligt att loopa igenom nyckel-värde-par i en ordbok.
För att använda denna metod i en for
-loop specificerar vi två variabler före nyckelordet in
— en för nyckeln (product
) och en för värdet (stock
):
1234567# 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.")
Obs
I det här exemplet används f-strängar (även kallade formaterade stränglitteraler) för att infoga variabler direkt i strängar. Syntaxen är enkel: lägg till ett
f
före det inledande citattecknet"
och placera variabler eller uttryck inom klamrar{}
i strängen. Denna metod gör det mycket mer läsbart att kombinera strängar och variabler i utskrifter, så det är värt att lära sig.
Med hjälp av dina kunskaper om if/else
, booleska operatorer och for
-loopar kan vi utföra en enkel lagerkontroll på en dictionary:
123456789101112131415161718# 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.")
Observera
Du kan märka att vi har placerat
if
-satser inutifor
-loopen, vilket har lagt till extra indrag iif
-blocket. Som nämnts tidigare kan varje indraget kodblock behandlas som självständigt, oavsett var det placeras. Det viktiga är att indragningen är konsekvent och korrekt mellan dem.
Swipe to start coding
Hantera lager och kampanjer i en livsmedelsbutik genom att loopa igenom lagret, kontrollera påfyllningsvillkor och tillämpa kampanjer.
Loopa igenom varje produkt i inventory
-ordlistan, och:
- Om en produkts nuvarande lager är mindre än eller lika med dess minimilager.
- Skriv ut ett meddelande om påfyllning.
- Öka lagret med
20
och uppdatera värdet i ordlistan. - Skriv sedan ut det uppdaterade lagret.
- Använd ytterligare ett
if
-villkor för att kontrollera om produkten finns ipromotions
-ordlistan och skriv ut meddelande. Annars, skriv ut ett meddelande om att ingen kampanj är tillgänglig.
Utdatakrav
För varje vara, skriv ut:
--- Processing: <item> ---
- Om påfyllning behövs:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
- Om kampanj finns:
Promotion for <item>: <promotion_details>
- Om inte:
No promotions for <item>
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.17
For-loopar
Svep för att visa menyn
Välkommen till avsnittet om loopar!
I detta kapitel fördjupar vi oss i hur loopar fungerar som ett nyckelverktyg för automatisering av repetitiva uppgifter och är avgörande för effektiv hantering av listor och andra itererbara datatyper.
Följ med Alex när han visar hur for
-loopar kan förenkla arbetsmoment i vår livsmedelsbutik:
Användningen av for
-loopar i Python möjliggör att en kodblock upprepas för varje objekt i en samling (itererbart objekt). Här är vad som är viktigt att känna till om for
-loopar:
Syntax
En for
-loop initieras med nyckelordet for
, följt av ett variabelnamn såsom item
för att representera varje element i sekvensen. Detta följs av nyckelordet in
och därefter det itererbara objektet, till exempel groceryItems
. Kodblocket inuti loopen körs en gång för varje element.
I detta exempel fungerar item
som iteratorvariabel som sekventiellt hämtar varje element i listan groceryItems
och kör funktionen print()
för varje:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iteration avser processen att upprepat köra ett kodblock. Python stöder två huvudtyper av iteration:
Definitiv iteration
Där antalet iterationer är känt i förväg. for
-loopar är ett klassiskt exempel och avslutas automatiskt när de når slutet av sekvensen.
Indefinitiv iteration
Där exekveringen fortsätter tills ett specifikt villkor uppfylls, vilket vanligtvis hanteras av while
-loopar, som kommer att behandlas mer ingående i nästa kapitel.
Exempel på användningsområden
for
-loopar i Python kan användas med alla itererbara objekt (lists
, tuples
, dictionaries
, strings
), vilket möjliggör datamanipulation per element.
Oavsett om du behöver komma åt objekt i en lista, nycklar eller värden i en dictionary, eller tecken i en sträng, erbjuder for
-loopar tydlig syntax som förenklar kod för repetitiva uppgifter.
Här är hur du kan använda en for
-loop för att iterera över elementen i en sträng och en tuple, på liknande sätt som vi såg med listor:
123456789# 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)
När du använder en for
-loop med en dictionary, kommer iteration direkt över dictionaryn att loopa genom dess nycklar som standard.
Här är vad du kan förvänta dig när du itererar direkt över en dictionary:
1234567# 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)
Observera att iteratorvariabeln product
endast kommer åt ordbokens nycklar.
För att iterera över värdena i en ordbok kan du använda metoden values()
.
Detta är användbart för operationer som kräver åtkomst till värden utan att behöva referera till nycklarna:
1234567# 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)
Om du behöver komma åt nycklar och värden samtidigt, gör metoden items()
det möjligt att loopa igenom nyckel-värde-par i en ordbok.
För att använda denna metod i en for
-loop specificerar vi två variabler före nyckelordet in
— en för nyckeln (product
) och en för värdet (stock
):
1234567# 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.")
Obs
I det här exemplet används f-strängar (även kallade formaterade stränglitteraler) för att infoga variabler direkt i strängar. Syntaxen är enkel: lägg till ett
f
före det inledande citattecknet"
och placera variabler eller uttryck inom klamrar{}
i strängen. Denna metod gör det mycket mer läsbart att kombinera strängar och variabler i utskrifter, så det är värt att lära sig.
Med hjälp av dina kunskaper om if/else
, booleska operatorer och for
-loopar kan vi utföra en enkel lagerkontroll på en dictionary:
123456789101112131415161718# 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.")
Observera
Du kan märka att vi har placerat
if
-satser inutifor
-loopen, vilket har lagt till extra indrag iif
-blocket. Som nämnts tidigare kan varje indraget kodblock behandlas som självständigt, oavsett var det placeras. Det viktiga är att indragningen är konsekvent och korrekt mellan dem.
Swipe to start coding
Hantera lager och kampanjer i en livsmedelsbutik genom att loopa igenom lagret, kontrollera påfyllningsvillkor och tillämpa kampanjer.
Loopa igenom varje produkt i inventory
-ordlistan, och:
- Om en produkts nuvarande lager är mindre än eller lika med dess minimilager.
- Skriv ut ett meddelande om påfyllning.
- Öka lagret med
20
och uppdatera värdet i ordlistan. - Skriv sedan ut det uppdaterade lagret.
- Använd ytterligare ett
if
-villkor för att kontrollera om produkten finns ipromotions
-ordlistan och skriv ut meddelande. Annars, skriv ut ett meddelande om att ingen kampanj är tillgänglig.
Utdatakrav
För varje vara, skriv ut:
--- Processing: <item> ---
- Om påfyllning behövs:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
- Om kampanj finns:
Promotion for <item>: <promotion_details>
- Om inte:
No promotions for <item>
Lösning
Tack för dina kommentarer!
Awesome!
Completion rate improved to 2.17single