While-Løkker
while
-løkker er det viktigste verktøyet for å håndtere ubestemt iterasjon, som er nyttig i situasjoner der antall iterasjoner ikke er kjent på forhånd, som å overvåke lagerbeholdning til de når en spesifikk terskel.
Se mens Alex demonstrerer hvordan du bruker while
-løkker for å håndtere dynamiske situasjoner:
En while
-løkke i Python kjører kontinuerlig en kodeblokk så lenge en spesifisert betingelse forblir True
.
Syntaks
For å starte en while
-løkke, definerer du en teller variabel og følger den med while
-nøkkelordet og en boolsk betingelse. Betingelsen etterfølges av et kolon :
, som indikerer starten på løkkens kodeblokk.
Løkken vil utføres gjentatte ganger til betingelsen blir False
. Vanligvis oppdateres tellervariabelen inne i løkken for til slutt å gjøre betingelsen False
og stoppe løkken.
Ta denne while
-løkka som et eksempel:
# 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
I dette eksempelet fungerer queue_length
som vår tellevariabel, som starter på 5
. Med hver iterasjon av løkken reduseres verdien av queue_length
med 1
til den når 0
. Da avsluttes løkken fordi betingelsen 0 > 0
evalueres til False
.
Merk
Det er avgjørende å oppdatere tellevariabelen inne i løkken for til slutt å møte betingelsen for å stoppe løkken. Uten dette vil løkken kjøre uendelig, og forhindre at annen kode kjører.
Eksempelapplikasjon
Tenk deg at du administrerer melkebeholdningen i en dagligvarebutikk. Du må sørge for at beholdningen ikke faller under et visst nivå, og når den gjør det, bør du fylle på for å opprettholde beholdningsnivået.
En while
-løkke er nyttig i denne situasjonen fordi den lar deg fylle på melk i trinn over flere iterasjoner til beholdningen når ønsket nivå. Uten en while
-løkke må du beregne den nøyaktige mengden melk som skal fylles på alt på en gang.
For eksempel, vurder at en butikkarbeider kun kan fylle på en fast mengde melk i én tur (f.eks. 20
pakker per påfylling). Hvis beholdningen ikke er fullstendig fylt opp, returnerer arbeideren til lageret for å hente en ny batch med melk.
# 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.")
Merk
milk_stock += restock_quantity
er ekvivalent medmilk_stock = milk_stock + restock_quantity
. Det er rett og slett en mer konsis og lesbar måte å uttrykke den samme operasjonen på.
Flytskjemaet ovenfor illustrerer logikken bak while
-løkken som brukes for å håndtere melkeinventaret. Legg merke til hvordan tellervariabelen milk_stock
, som starter på 15
, økes med restock_quantity
for hver løkkeiterasjon.
Løkken fortsetter å kjøre til milk_stock
overgår min_stock
terskelen på 50
, på hvilket tidspunkt den stopper.
Swipe to start coding
Administrer en dagligvarebutikks inventar ved å bruke while-løkker for å sikre at Bread
, Eggs
og Apples
oppfyller sine minimumslager nivåer. Påfyllingsmengder er lagret i en ordbok.
- Bruk en
while
-løkke for å sjekke om"Bread"
er under sitt minimumslager. Hvis ja, øk lageret ved å bruke den tilsvarende påfyllingsmengden fra ordboken. - Gjenta den samme logikken for
"Eggs"
og"Apples"
, hver med sin egenwhile
-løkke. - Etter påfylling, gå gjennom
inventory
-ordboken ved å brukefor
-løkken og skriv ut de endelige lager nivåene for alle varer.
Utdata Krav
- For hver påfylte vare, skriv ut:
"<Item> stock is low: <$current_stock> units. Restocking..."
- Etter all påfylling, skriv ut
Final Inventory after restocking:
etterfulgt av de oppdaterte lager nivåene:
"<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
- Sett inn en ny linje før det endelige inventaret ved å bruke
\n
. - Bruk f-strings for formatering og enkelt anførselstegn inne i dobbelt anførselstegn for ordbok nøkler.
Merk
For å unngå syntaks konflikter i f-strings, bruk dobbelt anførselstegn rundt strengen og enkelt anførselstegn inne:
f"Bread stock is low: {inventory['Bread'][0]} units."
Bruk\n
for å starte en ny linje i utdata:"First line.\nSecond line."
Løsning
Takk for tilbakemeldingene dine!