Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære For-løkker | Løkker
Introduktion til Python

bookFor-løkker

Velkommen til afsnittet dedikeret til loops!

I dette kapitel dykker vi ned i, hvordan loops fungerer som et centralt værktøj til automatisering af gentagne opgaver og er essentielle for effektiv håndtering af lister og andre iterérbare datatyper.

Følg med Alex, når han demonstrerer brugen af for-loops til at forenkle opgaver i vores dagligvarebutik:

Brugen af for-loops i Python gør det muligt at udføre en kodeblok gentaget for hvert element i en samling (iterérbart objekt). Her er, hvad du skal vide om for-loops:

Syntaks

Start et for-loop med nøgleordet for, efterfulgt af et variabelnavn såsom item til at repræsentere hvert element i sekvensen. Dette efterfølges af nøgleordet in og derefter det iterérbare objekt såsom groceryItems. Kodeblokken inden for loopet udføres én gang for hvert element.

I dette eksempel fungerer item som iteratorvariabel, der sekventielt tilgår hvert element i listen groceryItems og udfører funktionen print() for hver enkelt:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iteration henviser til processen med gentagne gange at udføre en kodeblok. Python understøtter to hovedtyper af iteration:

Bestemt iteration

Hvor antallet af iterationer er kendt på forhånd. for-løkker er et klassisk eksempel, der automatisk stopper når de når slutningen af sekvensen.

Ubestemt iteration

Hvor udførelsen fortsætter indtil en bestemt betingelse er opfyldt, typisk håndteret af while-løkker, som vil blive gennemgået mere detaljeret i det kommende kapitel.

Eksempelapplikationer

for-løkker i Python kan bruges med ethvert iterabelt objekt (lists, tuples, dictionaries, strings), hvilket muliggør datamanipulation for hvert enkelt element.

Uanset om du skal tilgå elementer i en liste, nøgler eller værdier i et dictionary, eller tegn i en streng, giver for-løkker en klar syntaks, der forenkler kode til gentagne opgaver.

Her ses, hvordan du kan bruge en for-løkke til at iterere over elementerne i en streng og et tuple, på samme måde som vi så med lister:

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)
copy

Ved brug af et for-loop med et dictionary, vil iteration direkte over dictionary som standard gennemløbe dets nøgler.

Dette kan forventes, når du itererer direkte over et 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)
copy

Bemærk, at iteratorvariablen product kun får adgang til ordbogens nøgler.

For at iterere over værdierne i en ordbog kan du bruge metoden values().

Dette er nyttigt til operationer, der kræver adgang til værdier uden at skulle referere til nøglerne:

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)
copy

Hvis du har brug for at få adgang til nøgler og værdier samtidigt, giver metoden items() dig mulighed for at gennemløbe nøgle-værdi-par i en ordbog.

For at bruge denne metode i et for-loop angives to variabler før in-nøgleordet — én for nøglen (product) og én for værdien (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.")
copy

Bemærk

I dette eksempel anvendes f-strenge (også kendt som formaterede streng-litteraler) til at indsætte variabler direkte i strenge. Syntaksen er enkel: tilføj et f før det indledende anførselstegn ", og placer variabler eller udtryk i krøllede parenteser {} inde i strengen. Denne metode gør det langt mere læsbart at kombinere strenge og variabler i print-udtryk, så det er værd at lære.

Med udgangspunkt i viden om if/else, booleske operatorer og for-løkker kan der udføres et simpelt lagercheck på et 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.")
copy

Bemærk

Du vil måske bemærke, at vi har placeret if-udsagn inde i for-løkken, hvilket har tilføjet ekstra indrykning til if-blokken. Som nævnt tidligere kan hver indrykket kodeblok behandles som uafhængig, uanset hvor den er placeret. Det vigtigste er at sikre, at indrykningen er ensartet og korrekt mellem dem.

Opgave

Swipe to start coding

Administrer lager og kampagner i en dagligvarebutik ved at gennemløbe varelageret, kontrollere genopfyldningsbetingelser og anvende kampagner.

Gennemløb hvert produkt i inventory-ordbogen, og:

  • Hvis et produkts nuværende lager er mindre end eller lig med dets minimumslager:
    • Udskriv en genopfyldningsbesked.
    • Forøg lageret med 20 og opdater værdien i ordbogen.
    • Udskriv derefter det opdaterede lager.
  • Brug en anden if-sætning til at kontrollere, om produktet findes i promotions-ordbogen, og udskriv besked. Ellers udskriv en besked om, at der ikke er nogen kampagne tilgængelig.

Outputkrav

For hver vare, udskriv:

  • --- Processing: <item> ---
  • Hvis genopfyldning er nødvendig:
    <item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>

Updated stock for <item>: <updated_stock>

  • Hvis kampagne findes:
    Promotion for <item>: <promotion_details>
  • Hvis ikke:
    No promotions for <item>

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 1
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 2.17

bookFor-løkker

Stryg for at vise menuen

Velkommen til afsnittet dedikeret til loops!

I dette kapitel dykker vi ned i, hvordan loops fungerer som et centralt værktøj til automatisering af gentagne opgaver og er essentielle for effektiv håndtering af lister og andre iterérbare datatyper.

Følg med Alex, når han demonstrerer brugen af for-loops til at forenkle opgaver i vores dagligvarebutik:

Brugen af for-loops i Python gør det muligt at udføre en kodeblok gentaget for hvert element i en samling (iterérbart objekt). Her er, hvad du skal vide om for-loops:

Syntaks

Start et for-loop med nøgleordet for, efterfulgt af et variabelnavn såsom item til at repræsentere hvert element i sekvensen. Dette efterfølges af nøgleordet in og derefter det iterérbare objekt såsom groceryItems. Kodeblokken inden for loopet udføres én gang for hvert element.

I dette eksempel fungerer item som iteratorvariabel, der sekventielt tilgår hvert element i listen groceryItems og udfører funktionen print() for hver enkelt:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iteration henviser til processen med gentagne gange at udføre en kodeblok. Python understøtter to hovedtyper af iteration:

Bestemt iteration

Hvor antallet af iterationer er kendt på forhånd. for-løkker er et klassisk eksempel, der automatisk stopper når de når slutningen af sekvensen.

Ubestemt iteration

Hvor udførelsen fortsætter indtil en bestemt betingelse er opfyldt, typisk håndteret af while-løkker, som vil blive gennemgået mere detaljeret i det kommende kapitel.

Eksempelapplikationer

for-løkker i Python kan bruges med ethvert iterabelt objekt (lists, tuples, dictionaries, strings), hvilket muliggør datamanipulation for hvert enkelt element.

Uanset om du skal tilgå elementer i en liste, nøgler eller værdier i et dictionary, eller tegn i en streng, giver for-løkker en klar syntaks, der forenkler kode til gentagne opgaver.

Her ses, hvordan du kan bruge en for-løkke til at iterere over elementerne i en streng og et tuple, på samme måde som vi så med lister:

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)
copy

Ved brug af et for-loop med et dictionary, vil iteration direkte over dictionary som standard gennemløbe dets nøgler.

Dette kan forventes, når du itererer direkte over et 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)
copy

Bemærk, at iteratorvariablen product kun får adgang til ordbogens nøgler.

For at iterere over værdierne i en ordbog kan du bruge metoden values().

Dette er nyttigt til operationer, der kræver adgang til værdier uden at skulle referere til nøglerne:

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)
copy

Hvis du har brug for at få adgang til nøgler og værdier samtidigt, giver metoden items() dig mulighed for at gennemløbe nøgle-værdi-par i en ordbog.

For at bruge denne metode i et for-loop angives to variabler før in-nøgleordet — én for nøglen (product) og én for værdien (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.")
copy

Bemærk

I dette eksempel anvendes f-strenge (også kendt som formaterede streng-litteraler) til at indsætte variabler direkte i strenge. Syntaksen er enkel: tilføj et f før det indledende anførselstegn ", og placer variabler eller udtryk i krøllede parenteser {} inde i strengen. Denne metode gør det langt mere læsbart at kombinere strenge og variabler i print-udtryk, så det er værd at lære.

Med udgangspunkt i viden om if/else, booleske operatorer og for-løkker kan der udføres et simpelt lagercheck på et 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.")
copy

Bemærk

Du vil måske bemærke, at vi har placeret if-udsagn inde i for-løkken, hvilket har tilføjet ekstra indrykning til if-blokken. Som nævnt tidligere kan hver indrykket kodeblok behandles som uafhængig, uanset hvor den er placeret. Det vigtigste er at sikre, at indrykningen er ensartet og korrekt mellem dem.

Opgave

Swipe to start coding

Administrer lager og kampagner i en dagligvarebutik ved at gennemløbe varelageret, kontrollere genopfyldningsbetingelser og anvende kampagner.

Gennemløb hvert produkt i inventory-ordbogen, og:

  • Hvis et produkts nuværende lager er mindre end eller lig med dets minimumslager:
    • Udskriv en genopfyldningsbesked.
    • Forøg lageret med 20 og opdater værdien i ordbogen.
    • Udskriv derefter det opdaterede lager.
  • Brug en anden if-sætning til at kontrollere, om produktet findes i promotions-ordbogen, og udskriv besked. Ellers udskriv en besked om, at der ikke er nogen kampagne tilgængelig.

Outputkrav

For hver vare, udskriv:

  • --- Processing: <item> ---
  • Hvis genopfyldning er nødvendig:
    <item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>

Updated stock for <item>: <updated_stock>

  • Hvis kampagne findes:
    Promotion for <item>: <promotion_details>
  • Hvis ikke:
    No promotions for <item>

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

close

Awesome!

Completion rate improved to 2.17
Sektion 5. Kapitel 1
single

single

some-alt