Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära While-Loopar | Loopar
Introduktion till Python

Svep för att visa menyn

book
While-Loopar

while-loopar är det viktigaste verktyget för att hantera obestämd iteration, vilket är användbart i scenarier där antalet iterationer inte är känt i förväg, som att övervaka lagernivåer tills de når en specifik tröskel.

Titta när Alex demonstrerar hur man använder while-loopar för att hantera dynamiska situationer:

En while-loop i Python kör kontinuerligt en kodblock så länge ett specificerat villkor förblir True.

Syntax

För att starta en while-loop, definierar du en räknarvariabel och följer den med while-nyckelordet och ett booleskt villkor. Villkoret följs av ett kolon :, vilket indikerar början på loopens kodblock.

Loopen kommer att köras upprepade gånger tills villkoret blir False. Vanligtvis uppdateras räknarvariabeln inuti loopen för att så småningom göra villkoret False och stoppa loopen.

Ta denna while-loop som exempel:

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 det här exemplet fungerar queue_length som vår räknarvariabel, som börjar på 5. Vid varje loopiteration minskar värdet av queue_length med 1 tills det når 0. Vid den tidpunkten avslutas loopen eftersom villkoret 0 > 0 utvärderas till False.

Notera

Det är viktigt att uppdatera räknarvariabeln inuti loopen för att slutligen uppfylla villkoret för att stoppa loopen. Utan detta kommer loopen att köras oändligt, vilket förhindrar att någon ytterligare kod körs.

Exempelapplikation

Föreställ dig att du hanterar mjölkförrådet i en livsmedelsbutik. Du behöver säkerställa att lagret inte sjunker under en viss nivå, och när det gör det, bör du fylla på för att upprätthålla lagernivån.

En while-loop är användbar i denna situation eftersom den låter dig fylla på mjölk i steg över flera iterationer tills lagret når önskad nivå. Utan en while-loop skulle du behöva beräkna den exakta mängden mjölk att fylla på allt på en gång.

Till exempel, tänk på att en butiksarbetare endast kan fylla på en fast mängd mjölk i en resa (t.ex. 20 paket per påfyllning). Om lagret inte är helt påfyllt, återvänder arbetaren till lagret för att hämta en annan omgång mjö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

Notera

milk_stock += restock_quantity är ekvivalent med milk_stock = milk_stock + restock_quantity. Det är helt enkelt ett mer kortfattat och läsbart sätt att uttrycka samma operation.

Flödesschemat ovan illustrerar logiken bakom while-loopen som används för att hantera mjölkinventariet. Notera hur räknarvariabeln milk_stock, som börjar på 15, ökas med restock_quantity vid varje loopiteration.

Loopen fortsätter att köras tills milk_stock överstiger min_stock tröskeln50, vid vilken punkt den stannar.

Uppgift

Swipe to start coding

Hantera en livsmedelsbutiks lager genom att använda while loops för att säkerställa att Bread, Eggs och Apples uppfyller sina minimilagernivåer. Påfyllningskvantiteter lagras i en ordbok.

  • Använd en while-loop för att kontrollera om "Bread" är under sitt minimilager. Om så är fallet, öka dess lager med motsvarande påfyllningskvantitet från ordboken.
  • Upprepa samma logik för "Eggs" och "Apples", var och en med sin egen while-loop.
  • Efter påfyllning, loopa genom inventory-ordboken med hjälp av for-loopen och skriv ut de slutliga lagernivåerna för alla artiklar.

Utmatningskrav

  • För varje påfylld artikel, skriv ut:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Efter all påfyllning, skriv ut Final Inventory after restocking: följt av de uppdaterade lagernivåerna:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Infoga en ny rad före den slutliga inventeringen med \n.
  • Använd f-strings för formatering och enkla citattecken inuti dubbelciterade strängar för ordboksnycklar.

Notera

För att undvika syntaxkonflikter i f-strings, använd dubbla citattecken runt strängen och enkla citattecken inuti: f"Bread stock is low: {inventory['Bread'][0]} units."
Använd \n för att starta en ny rad i utmatningen: "First line.\nSecond line."

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 2
Vi beklagar att något gick fel. Vad hände?

Fråga AI

expand
ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

book
While-Loopar

while-loopar är det viktigaste verktyget för att hantera obestämd iteration, vilket är användbart i scenarier där antalet iterationer inte är känt i förväg, som att övervaka lagernivåer tills de når en specifik tröskel.

Titta när Alex demonstrerar hur man använder while-loopar för att hantera dynamiska situationer:

En while-loop i Python kör kontinuerligt en kodblock så länge ett specificerat villkor förblir True.

Syntax

För att starta en while-loop, definierar du en räknarvariabel och följer den med while-nyckelordet och ett booleskt villkor. Villkoret följs av ett kolon :, vilket indikerar början på loopens kodblock.

Loopen kommer att köras upprepade gånger tills villkoret blir False. Vanligtvis uppdateras räknarvariabeln inuti loopen för att så småningom göra villkoret False och stoppa loopen.

Ta denna while-loop som exempel:

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 det här exemplet fungerar queue_length som vår räknarvariabel, som börjar på 5. Vid varje loopiteration minskar värdet av queue_length med 1 tills det når 0. Vid den tidpunkten avslutas loopen eftersom villkoret 0 > 0 utvärderas till False.

Notera

Det är viktigt att uppdatera räknarvariabeln inuti loopen för att slutligen uppfylla villkoret för att stoppa loopen. Utan detta kommer loopen att köras oändligt, vilket förhindrar att någon ytterligare kod körs.

Exempelapplikation

Föreställ dig att du hanterar mjölkförrådet i en livsmedelsbutik. Du behöver säkerställa att lagret inte sjunker under en viss nivå, och när det gör det, bör du fylla på för att upprätthålla lagernivån.

En while-loop är användbar i denna situation eftersom den låter dig fylla på mjölk i steg över flera iterationer tills lagret når önskad nivå. Utan en while-loop skulle du behöva beräkna den exakta mängden mjölk att fylla på allt på en gång.

Till exempel, tänk på att en butiksarbetare endast kan fylla på en fast mängd mjölk i en resa (t.ex. 20 paket per påfyllning). Om lagret inte är helt påfyllt, återvänder arbetaren till lagret för att hämta en annan omgång mjö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

Notera

milk_stock += restock_quantity är ekvivalent med milk_stock = milk_stock + restock_quantity. Det är helt enkelt ett mer kortfattat och läsbart sätt att uttrycka samma operation.

Flödesschemat ovan illustrerar logiken bakom while-loopen som används för att hantera mjölkinventariet. Notera hur räknarvariabeln milk_stock, som börjar på 15, ökas med restock_quantity vid varje loopiteration.

Loopen fortsätter att köras tills milk_stock överstiger min_stock tröskeln50, vid vilken punkt den stannar.

Uppgift

Swipe to start coding

Hantera en livsmedelsbutiks lager genom att använda while loops för att säkerställa att Bread, Eggs och Apples uppfyller sina minimilagernivåer. Påfyllningskvantiteter lagras i en ordbok.

  • Använd en while-loop för att kontrollera om "Bread" är under sitt minimilager. Om så är fallet, öka dess lager med motsvarande påfyllningskvantitet från ordboken.
  • Upprepa samma logik för "Eggs" och "Apples", var och en med sin egen while-loop.
  • Efter påfyllning, loopa genom inventory-ordboken med hjälp av for-loopen och skriv ut de slutliga lagernivåerna för alla artiklar.

Utmatningskrav

  • För varje påfylld artikel, skriv ut:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Efter all påfyllning, skriv ut Final Inventory after restocking: följt av de uppdaterade lagernivåerna:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Infoga en ny rad före den slutliga inventeringen med \n.
  • Använd f-strings för formatering och enkla citattecken inuti dubbelciterade strängar för ordboksnycklar.

Notera

För att undvika syntaxkonflikter i f-strings, använd dubbla citattecken runt strängen och enkla citattecken inuti: f"Bread stock is low: {inventory['Bread'][0]} units."
Använd \n för att starta en ny rad i utmatningen: "First line.\nSecond line."

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 2
Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Vi beklagar att något gick fel. Vad hände?
some-alt