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

Stryg for at vise menuen

book
While Loops

while-løkker er det vigtigste værktøj til at håndtere ubestemt iteration, hvilket er nyttigt i scenarier, hvor antallet af iterationer ikke er kendt på forhånd, som at overvåge lagerbeholdninger indtil de når en bestemt tærskel.

Se, hvordan Alex demonstrerer brugen af while-løkker til at håndtere dynamiske situationer:

En while-løkke i Python kører kontinuerligt en blok af kode, så længe en specificeret betingelse forbliver True.

Syntaks

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

Løkken vil udføre 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.

Tag denne while-løkke som eksempel:

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ællervariable, der starter ved 5. Med hver iteration af løkken falder værdien af queue_length med 1, indtil den når 0. På det tidspunkt slutter 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, hvilket forhindrer yderligere kode i at blive udført.

Eksempel Applikation

Forestil dig, at du administrerer mælkebeholdningen i en købmandsbutik. Du skal sikre, at beholdningen ikke falder under et bestemt niveau, og når den gør, skal du genopfylde for at opretholde beholdningsniveauet.

En while-løkke er nyttig i denne situation, fordi den giver dig mulighed for at genopfylde mælk i trin 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 skulle genopfyldes på én gang.

For eksempel, overvej at en butiksmedarbejder kun kan genopfylde en fast mængde mælk på én tur (f.eks. 20 pakker pr. genopfyldning). Hvis beholdningen ikke er fuldt genopfyldt, vender medarbejderen tilbage til lageret for at hente en ny portion 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 simpelthen en mere kortfattet og læsbar måde at udtrykke den samme operation på.

Flowchartet 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 løkkeiteration.

Løkken fortsætter med at køre indtil milk_stock overstiger min_stock grænsen50, hvorefter den stopper.

Opgave

Swipe to start coding

Administrer en købmandsforretnings lager ved at bruge while-løkker for at sikre, at Bread, Eggs og Apples opfylder deres minimumslager niveauer. Genopfyldningsmængder er gemt i en ordbog.

  • Brug en while-løkke til at kontrollere, om "Bread" er under dets minimumslager. Hvis ja, øg dets lager ved hjælp af den tilsvarende genopfyldningsmængde fra ordbogen.
  • Gentag den samme logik for "Eggs" og "Apples", hver med sin egen while-løkke.
  • Efter genopfyldning, gennemgå inventory-ordbogen ved hjælp af for-løkken og udskriv de endelige lager niveauer 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 lager niveauer:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Indsæt en ny linje før det endelige lager ved hjælp af \n.
  • Brug f-strings til formatering og enkelt anførselstegn inde i dobbelt anførselstegn for ordbogsnøgler.

Bemærk

For at undgå syntaks konflikter i f-strings, brug dobbelt anførselstegn omkring strengen og enkelt anfø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
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
While Loops

while-løkker er det vigtigste værktøj til at håndtere ubestemt iteration, hvilket er nyttigt i scenarier, hvor antallet af iterationer ikke er kendt på forhånd, som at overvåge lagerbeholdninger indtil de når en bestemt tærskel.

Se, hvordan Alex demonstrerer brugen af while-løkker til at håndtere dynamiske situationer:

En while-løkke i Python kører kontinuerligt en blok af kode, så længe en specificeret betingelse forbliver True.

Syntaks

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

Løkken vil udføre 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.

Tag denne while-løkke som eksempel:

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ællervariable, der starter ved 5. Med hver iteration af løkken falder værdien af queue_length med 1, indtil den når 0. På det tidspunkt slutter 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, hvilket forhindrer yderligere kode i at blive udført.

Eksempel Applikation

Forestil dig, at du administrerer mælkebeholdningen i en købmandsbutik. Du skal sikre, at beholdningen ikke falder under et bestemt niveau, og når den gør, skal du genopfylde for at opretholde beholdningsniveauet.

En while-løkke er nyttig i denne situation, fordi den giver dig mulighed for at genopfylde mælk i trin 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 skulle genopfyldes på én gang.

For eksempel, overvej at en butiksmedarbejder kun kan genopfylde en fast mængde mælk på én tur (f.eks. 20 pakker pr. genopfyldning). Hvis beholdningen ikke er fuldt genopfyldt, vender medarbejderen tilbage til lageret for at hente en ny portion 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 simpelthen en mere kortfattet og læsbar måde at udtrykke den samme operation på.

Flowchartet 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 løkkeiteration.

Løkken fortsætter med at køre indtil milk_stock overstiger min_stock grænsen50, hvorefter den stopper.

Opgave

Swipe to start coding

Administrer en købmandsforretnings lager ved at bruge while-løkker for at sikre, at Bread, Eggs og Apples opfylder deres minimumslager niveauer. Genopfyldningsmængder er gemt i en ordbog.

  • Brug en while-løkke til at kontrollere, om "Bread" er under dets minimumslager. Hvis ja, øg dets lager ved hjælp af den tilsvarende genopfyldningsmængde fra ordbogen.
  • Gentag den samme logik for "Eggs" og "Apples", hver med sin egen while-løkke.
  • Efter genopfyldning, gennemgå inventory-ordbogen ved hjælp af for-løkken og udskriv de endelige lager niveauer 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 lager niveauer:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Indsæt en ny linje før det endelige lager ved hjælp af \n.
  • Brug f-strings til formatering og enkelt anførselstegn inde i dobbelt anførselstegn for ordbogsnøgler.

Bemærk

For at undgå syntaks konflikter i f-strings, brug dobbelt anførselstegn omkring strengen og enkelt anfø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