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

Stryg for at vise menuen

book
For Løkker

Velkommen til sektionen dedikeret til loops!

I dette kapitel vil vi dykke ned i, hvordan loops fungerer som et nøgleværktøj til automatisering af gentagne opgaver og er essentielle for effektivt at håndtere lister og andre itererbare datatyper.

Deltag med Alex, mens han demonstrerer brugen af for loops til at forenkle operationer i vores købmandsbutik:

Brugen af for loops i Python giver dig mulighed for at udføre en kodeblok gentagne gange for hvert element i en samling (itererbart objekt). Her er hvad du skal vide om for loops:

Syntax

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

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

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

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

Bestemt Iteration

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

Ubetinget Iteration

Hvor udførelsen fortsætter indtil en specifik betingelse er opfyldt, typisk håndteret af while loops, som vil blive udforsket i detaljer i det kommende kapitel.

Eksempel Applikationer

for-løkker i Python kan bruges med enhver iterabel objekt (lists, tuples, dictionaries, strings), hvilket tillader datamanipulation på en per-element basis.

Uanset om du har brug for at få adgang til elementer i en liste, nøgler eller værdier i en ordbog, eller tegn i en streng, giver for-løkker en klar syntaks, der forenkler koden for gentagne opgaver.

Her er hvordan du kan bruge en for-løkke til at iterere over elementerne i en streng og en tuple, ligesom 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

Når du bruger en for-løkke med en ordbog, vil iterering direkte over ordbogen som standard løkke gennem dens nøgler.

Her er hvad du kan forvente, når du direkte itererer over en ordbog:

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, hvordan iteratorvariablen product kun får adgang til ordbogens nøgler.

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

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, tillader items()-metoden dig at løbe igennem nøgle-værdi par i en ordbog.

For at bruge denne metode i en for-løkke, specificerer vi to variabler før in-nøgleordet — en for nøglen (product) og en 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 bruger vi f-strenge (også kendt som formaterede streng-litteraler) til at indlejre variabler direkte i strenge. Syntaksen er enkel: tilføj et f før det åbne anførselstegn ", og placer variabler eller udtryk inde i krøllede parenteser {} inden i strengen. Denne metode gør det meget mere læsbart at kombinere strenge og variabler i print-udsagn, så det er værd at lære.

Med udgangspunkt i din viden om if/else, booleske operatorer og for loops, kan vi køre en simpel lagerkontrol på en ordbog:

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 bemærker måske, at vi har placeret if-udsagn inde i for-loopet, hvilket tilføjede ekstra indrykning til if-blokken. Som nævnt tidligere kan hver indrykket kodeblok behandles som uafhængig, uanset hvor den er placeret. Nøglen er at sikre, at indrykningen er konsistent og korrekt mellem dem.

Opgave

Swipe to start coding

Administrer lager og kampagner i en købmandsbutik ved at loope gennem lagerbeholdningen, kontrollere genopfyldningsbetingelser og anvende kampagner.

  • Loop gennem hvert produkt i inventory ordbogen.
  • Inde i loopet, få current_stock og min_stock fra lagerlisten.
  • Brug en if sætning til at kontrollere, om den nuværende lagerbeholdning er mindre end eller lig med minimumslageret:
    • Hvis ja, udskriv en genopfyldningsbesked, øg lageret med 20, opdater lagerbeholdningen, og udskriv opdateringsbeskeden.
  • Brug en anden if sætning til at kontrollere, om produktet findes i promotions ordbogen.

Outputkrav

For hvert element, udskriv:

  • --- Processing: <item> ---

  • Hvis genopfyldning er nødvendig:
    <item> skal genopfyldes. Nuværende lager: <current_stock>. Minimumskrav: <min_stock>

    Opdateret lager for <item>: <updated_stock>

  • Hvis kampagne findes:
    Kampagne for <item>: <promotion_details>

  • Hvis ikke:
    Ingen kampagner 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!

Sektion 5. Kapitel 1
Vi beklager, at noget gik galt. Hvad skete der?

Spørg AI

expand
ChatGPT

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

book
For Løkker

Velkommen til sektionen dedikeret til loops!

I dette kapitel vil vi dykke ned i, hvordan loops fungerer som et nøgleværktøj til automatisering af gentagne opgaver og er essentielle for effektivt at håndtere lister og andre itererbare datatyper.

Deltag med Alex, mens han demonstrerer brugen af for loops til at forenkle operationer i vores købmandsbutik:

Brugen af for loops i Python giver dig mulighed for at udføre en kodeblok gentagne gange for hvert element i en samling (itererbart objekt). Her er hvad du skal vide om for loops:

Syntax

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

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

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

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

Bestemt Iteration

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

Ubetinget Iteration

Hvor udførelsen fortsætter indtil en specifik betingelse er opfyldt, typisk håndteret af while loops, som vil blive udforsket i detaljer i det kommende kapitel.

Eksempel Applikationer

for-løkker i Python kan bruges med enhver iterabel objekt (lists, tuples, dictionaries, strings), hvilket tillader datamanipulation på en per-element basis.

Uanset om du har brug for at få adgang til elementer i en liste, nøgler eller værdier i en ordbog, eller tegn i en streng, giver for-løkker en klar syntaks, der forenkler koden for gentagne opgaver.

Her er hvordan du kan bruge en for-løkke til at iterere over elementerne i en streng og en tuple, ligesom 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

Når du bruger en for-løkke med en ordbog, vil iterering direkte over ordbogen som standard løkke gennem dens nøgler.

Her er hvad du kan forvente, når du direkte itererer over en ordbog:

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, hvordan iteratorvariablen product kun får adgang til ordbogens nøgler.

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

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, tillader items()-metoden dig at løbe igennem nøgle-værdi par i en ordbog.

For at bruge denne metode i en for-løkke, specificerer vi to variabler før in-nøgleordet — en for nøglen (product) og en 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 bruger vi f-strenge (også kendt som formaterede streng-litteraler) til at indlejre variabler direkte i strenge. Syntaksen er enkel: tilføj et f før det åbne anførselstegn ", og placer variabler eller udtryk inde i krøllede parenteser {} inden i strengen. Denne metode gør det meget mere læsbart at kombinere strenge og variabler i print-udsagn, så det er værd at lære.

Med udgangspunkt i din viden om if/else, booleske operatorer og for loops, kan vi køre en simpel lagerkontrol på en ordbog:

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 bemærker måske, at vi har placeret if-udsagn inde i for-loopet, hvilket tilføjede ekstra indrykning til if-blokken. Som nævnt tidligere kan hver indrykket kodeblok behandles som uafhængig, uanset hvor den er placeret. Nøglen er at sikre, at indrykningen er konsistent og korrekt mellem dem.

Opgave

Swipe to start coding

Administrer lager og kampagner i en købmandsbutik ved at loope gennem lagerbeholdningen, kontrollere genopfyldningsbetingelser og anvende kampagner.

  • Loop gennem hvert produkt i inventory ordbogen.
  • Inde i loopet, få current_stock og min_stock fra lagerlisten.
  • Brug en if sætning til at kontrollere, om den nuværende lagerbeholdning er mindre end eller lig med minimumslageret:
    • Hvis ja, udskriv en genopfyldningsbesked, øg lageret med 20, opdater lagerbeholdningen, og udskriv opdateringsbeskeden.
  • Brug en anden if sætning til at kontrollere, om produktet findes i promotions ordbogen.

Outputkrav

For hvert element, udskriv:

  • --- Processing: <item> ---

  • Hvis genopfyldning er nødvendig:
    <item> skal genopfyldes. Nuværende lager: <current_stock>. Minimumskrav: <min_stock>

    Opdateret lager for <item>: <updated_stock>

  • Hvis kampagne findes:
    Kampagne for <item>: <promotion_details>

  • Hvis ikke:
    Ingen kampagner 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!

Sektion 5. Kapitel 1
Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Vi beklager, at noget gik galt. Hvad skete der?
some-alt