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

Stryg for at vise menuen

book
While-løkker

while-løkker er det centrale værktøj til håndtering af ubestemt iteration, hvilket er nyttigt i situationer, hvor antallet af iterationer ikke er kendt på forhånd, såsom overvågning af lagerbeholdning indtil de opfylder en bestemt grænse.

Se med, når Alex demonstrerer, hvordan man bruger while-løkker til at håndtere dynamiske situationer:

En while-løkke i Python kører en kodeblok kontinuerligt, så længe en angivet betingelse forbliver True.

Syntaks

For at starte en while-løkke defineres en tællervariabel, efterfulgt af nøgleordet while og en boolesk betingelse. Betingelsen efterfølges af et kolon :, som angiver starten på løkkens kodeblok.

Løkken vil blive udført gentagne gange indtil betingelsen bliver False. Typisk opdateres tællervariablen inde i løkken for til sidst at gøre betingelsen False og stoppe løkken.

Se dette eksempel på en while-løkke:

1234567891011
# 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
copy

I dette eksempel fungerer queue_length som vores tællervariabel, der starter ved 5. For hver iteration af løkken mindskes værdien af queue_length med 1, indtil den når 0. På dette tidspunkt afsluttes løkken, fordi betingelsen 0 > 0 evalueres til False.

Bemærk

Det er afgørende at opdatere tællervariablen inde i løkken for til sidst at opfylde betingelsen for at stoppe løkken. Uden dette vil løkken køre uendeligt og forhindre yderligere kode i at blive udført.

Eksempel på anvendelse

Forestil dig, at du administrerer mælkebeholdningen i et supermarked. Du skal sikre, at beholdningen ikke falder under et bestemt niveau, og når det sker, skal du genopfylde for at opretholde beholdningsniveauet.

En while-løkke er nyttig i denne situation, fordi den gør det muligt at genopfylde mælk i intervaller over flere iterationer, indtil beholdningen når det ønskede niveau. Uden en while-løkke skulle du beregne den nøjagtige mængde mælk, der skal genopfyldes på én gang.

For eksempel kan en butiksmedarbejder kun genopfylde en fast mængde mælk pr. tur (f.eks. 20 pakker pr. genopfyldning). Hvis beholdningen ikke er fuldt genopfyldt, vender medarbejderen tilbage til lageret for at hente endnu en omgang mælk.

123456789101112131415161718
# 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.")
copy

Bemærk

milk_stock += restock_quantity svarer til milk_stock = milk_stock + restock_quantity. Det er blot en mere kortfattet og læsbar måde at udtrykke den samme operation på.

Flowdiagrammet ovenfor illustrerer logikken bag while-løkken, der bruges til at håndtere mælkebeholdningen. Bemærk, hvordan tællervariablen milk_stock, der starter ved 15, øges med restock_quantity ved hver iteration af løkken.

Løkken fortsætter med at køre indtil milk_stock overstiger grænseværdien min_stock50, hvorefter den stopper.

Opgave

Swipe to start coding

Administrer en dagligvarebutiks lager ved at bruge while-løkker til at sikre, at Bread, Eggs og Apples opfylder deres minimumslagerkrav. Genopfyldningsmængderne er gemt i et dictionary.

  • Brug en while-løkke til at kontrollere, om "Bread" er under sit minimumslager. Hvis det er tilfældet, øg lageret med den tilsvarende genopfyldningsmængde fra dictionaryen.
  • Gentag samme logik for "Eggs" og "Apples", hver med sin egen while-løkke.
  • Efter genopfyldning, gennemgå inventory-dictionaryen med en for-løkke og udskriv de endelige lagerniveauer for alle varer.

Outputkrav

  • For hver genopfyldt vare, udskriv:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Efter al genopfyldning, udskriv Final Inventory after restocking: efterfulgt af de opdaterede lagerniveauer:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Indsæt en ny linje før den endelige lagerstatus ved at bruge \n.
  • Brug f-strings til formatering og enkeltanførselstegn inden i dobbelte anførselstegn for dictionary-nøgler.

Bemærk

For at undgå syntaksproblemer i f-strings, brug dobbelte anførselstegn omkring strengen og enkeltanførselstegn indeni: f"Bread stock is low: {inventory['Bread'][0]} units."
Brug \n til at starte en ny linje i outputtet: "First line.\nSecond line."

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 2

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
While-løkker

while-løkker er det centrale værktøj til håndtering af ubestemt iteration, hvilket er nyttigt i situationer, hvor antallet af iterationer ikke er kendt på forhånd, såsom overvågning af lagerbeholdning indtil de opfylder en bestemt grænse.

Se med, når Alex demonstrerer, hvordan man bruger while-løkker til at håndtere dynamiske situationer:

En while-løkke i Python kører en kodeblok kontinuerligt, så længe en angivet betingelse forbliver True.

Syntaks

For at starte en while-løkke defineres en tællervariabel, efterfulgt af nøgleordet while og en boolesk betingelse. Betingelsen efterfølges af et kolon :, som angiver starten på løkkens kodeblok.

Løkken vil blive udført gentagne gange indtil betingelsen bliver False. Typisk opdateres tællervariablen inde i løkken for til sidst at gøre betingelsen False og stoppe løkken.

Se dette eksempel på en while-løkke:

1234567891011
# 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
copy

I dette eksempel fungerer queue_length som vores tællervariabel, der starter ved 5. For hver iteration af løkken mindskes værdien af queue_length med 1, indtil den når 0. På dette tidspunkt afsluttes løkken, fordi betingelsen 0 > 0 evalueres til False.

Bemærk

Det er afgørende at opdatere tællervariablen inde i løkken for til sidst at opfylde betingelsen for at stoppe løkken. Uden dette vil løkken køre uendeligt og forhindre yderligere kode i at blive udført.

Eksempel på anvendelse

Forestil dig, at du administrerer mælkebeholdningen i et supermarked. Du skal sikre, at beholdningen ikke falder under et bestemt niveau, og når det sker, skal du genopfylde for at opretholde beholdningsniveauet.

En while-løkke er nyttig i denne situation, fordi den gør det muligt at genopfylde mælk i intervaller over flere iterationer, indtil beholdningen når det ønskede niveau. Uden en while-løkke skulle du beregne den nøjagtige mængde mælk, der skal genopfyldes på én gang.

For eksempel kan en butiksmedarbejder kun genopfylde en fast mængde mælk pr. tur (f.eks. 20 pakker pr. genopfyldning). Hvis beholdningen ikke er fuldt genopfyldt, vender medarbejderen tilbage til lageret for at hente endnu en omgang mælk.

123456789101112131415161718
# 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.")
copy

Bemærk

milk_stock += restock_quantity svarer til milk_stock = milk_stock + restock_quantity. Det er blot en mere kortfattet og læsbar måde at udtrykke den samme operation på.

Flowdiagrammet ovenfor illustrerer logikken bag while-løkken, der bruges til at håndtere mælkebeholdningen. Bemærk, hvordan tællervariablen milk_stock, der starter ved 15, øges med restock_quantity ved hver iteration af løkken.

Løkken fortsætter med at køre indtil milk_stock overstiger grænseværdien min_stock50, hvorefter den stopper.

Opgave

Swipe to start coding

Administrer en dagligvarebutiks lager ved at bruge while-løkker til at sikre, at Bread, Eggs og Apples opfylder deres minimumslagerkrav. Genopfyldningsmængderne er gemt i et dictionary.

  • Brug en while-løkke til at kontrollere, om "Bread" er under sit minimumslager. Hvis det er tilfældet, øg lageret med den tilsvarende genopfyldningsmængde fra dictionaryen.
  • Gentag samme logik for "Eggs" og "Apples", hver med sin egen while-løkke.
  • Efter genopfyldning, gennemgå inventory-dictionaryen med en for-løkke og udskriv de endelige lagerniveauer for alle varer.

Outputkrav

  • For hver genopfyldt vare, udskriv:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Efter al genopfyldning, udskriv Final Inventory after restocking: efterfulgt af de opdaterede lagerniveauer:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Indsæt en ny linje før den endelige lagerstatus ved at bruge \n.
  • Brug f-strings til formatering og enkeltanførselstegn inden i dobbelte anførselstegn for dictionary-nøgler.

Bemærk

For at undgå syntaksproblemer i f-strings, brug dobbelte anførselstegn omkring strengen og enkeltanførselstegn indeni: f"Bread stock is low: {inventory['Bread'][0]} units."
Brug \n til at starte en ny linje i outputtet: "First line.\nSecond line."

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 2
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