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 centrala verktyget för att hantera obestämd iteration, vilket är användbart i situationer där antalet iterationer inte är känt i förväg, såsom att övervaka lagernivåer tills de når en specifik gräns.

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

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

Syntax

För att starta en while-loop definieras en räknarvariabel och följs av nyckelordet while samt 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.

Se detta exempel på en while-loop:

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äknevariabel, med startvärde 5. Vid varje iteration av loopen minskar värdet på queue_length med 1 tills det når 0. Då avslutas loopen eftersom villkoret 0 > 0 utvärderas till False.

Observera

Det är avgörande att uppdatera räknevariabeln inuti loopen för att så småningom uppfylla villkoret för att avsluta loopen. Utan detta kommer loopen att köras oändligt, vilket förhindrar att någon ytterligare kod exekveras.

Exempel på tillämpning

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 ska du fylla på för att bibehålla lagernivån.

En while-loop är användbar i denna situation eftersom den låter dig fylla på mjölk i omgångar under flera iterationer tills lagret når önskad nivå. Utan en while-loop skulle du behöva räkna ut exakt hur mycket mjölk som ska fyllas på vid ett tillfälle.

Till exempel kan en butiksanställd endast fylla på en fast mängd mjölk per gång (t.ex. 20 paket per påfyllning). Om lagret inte är helt återställt återvänder arbetaren till lagret för att hämta ytterligare en 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

Obs

milk_stock += restock_quantity är likvärdigt 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ölkförrådet. Observera hur räknarvariabeln milk_stock, som börjar på 15, ökas med restock_quantity vid varje iteration av loopen.

Loopen fortsätter att köra tills milk_stock överstiger tröskelvärdet min_stock50, då den avslutas.

Uppgift

Swipe to start coding

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

  • Använd en while-loop för att kontrollera om "Bread" ligger under sin miniminivå. Om så är fallet, öka lagret 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, iterera genom ordboken inventory med en for-loop och skriv ut de slutliga lagernivåerna för alla varor.

Utdatakrav

  • För varje påfylld vara, 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 tom rad före den slutliga inventeringen med hjälp av \n.
  • Använd f-strängar för formatering och enkla citattecken inuti dubbla citattecken för ordboksnycklar.

Observera

För att undvika syntaxkonflikter i f-strängar, 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 börja en ny rad i utdata: "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

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 centrala verktyget för att hantera obestämd iteration, vilket är användbart i situationer där antalet iterationer inte är känt i förväg, såsom att övervaka lagernivåer tills de når en specifik gräns.

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

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

Syntax

För att starta en while-loop definieras en räknarvariabel och följs av nyckelordet while samt 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.

Se detta exempel på en while-loop:

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äknevariabel, med startvärde 5. Vid varje iteration av loopen minskar värdet på queue_length med 1 tills det når 0. Då avslutas loopen eftersom villkoret 0 > 0 utvärderas till False.

Observera

Det är avgörande att uppdatera räknevariabeln inuti loopen för att så småningom uppfylla villkoret för att avsluta loopen. Utan detta kommer loopen att köras oändligt, vilket förhindrar att någon ytterligare kod exekveras.

Exempel på tillämpning

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 ska du fylla på för att bibehålla lagernivån.

En while-loop är användbar i denna situation eftersom den låter dig fylla på mjölk i omgångar under flera iterationer tills lagret når önskad nivå. Utan en while-loop skulle du behöva räkna ut exakt hur mycket mjölk som ska fyllas på vid ett tillfälle.

Till exempel kan en butiksanställd endast fylla på en fast mängd mjölk per gång (t.ex. 20 paket per påfyllning). Om lagret inte är helt återställt återvänder arbetaren till lagret för att hämta ytterligare en 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

Obs

milk_stock += restock_quantity är likvärdigt 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ölkförrådet. Observera hur räknarvariabeln milk_stock, som börjar på 15, ökas med restock_quantity vid varje iteration av loopen.

Loopen fortsätter att köra tills milk_stock överstiger tröskelvärdet min_stock50, då den avslutas.

Uppgift

Swipe to start coding

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

  • Använd en while-loop för att kontrollera om "Bread" ligger under sin miniminivå. Om så är fallet, öka lagret 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, iterera genom ordboken inventory med en for-loop och skriv ut de slutliga lagernivåerna för alla varor.

Utdatakrav

  • För varje påfylld vara, 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 tom rad före den slutliga inventeringen med hjälp av \n.
  • Använd f-strängar för formatering och enkla citattecken inuti dubbla citattecken för ordboksnycklar.

Observera

För att undvika syntaxkonflikter i f-strängar, 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 börja en ny rad i utdata: "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