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
Introduksjon til Python

Sveip for å vise menyen

book
While-løkker

while-løkker er det sentrale verktøyet for å håndtere ubestemt iterasjon, noe som er nyttig i situasjoner der antall iterasjoner ikke er kjent på forhånd, som for eksempel å overvåke lagerbeholdning inntil de når en bestemt grense.

Se hvordan Alex demonstrerer bruk av while-løkker for å håndtere dynamiske situasjoner:

En while-løkke i Python kjører en kodeblokk gjentatte ganger så lenge en spesifisert betingelse er True.

Syntaks

For å starte en while-løkke definerer du en teller-variabel og følger den med nøkkelordet while og en boolsk betingelse. Betingelsen etterfølges av et kolon :, som indikerer starten på løkkens kodeblokk.

Løkken vil kjøre gjentatte ganger inntil betingelsen blir False. Vanligvis oppdateres teller-variabelen inne i løkken for til slutt å gjøre betingelsen False og stoppe løkken.

Se dette eksempelet 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 eksempelet fungerer queue_length som vår teller-variabel, og starter på 5. For hver gjennomgang 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 teller-variabelen inne i løkken for til slutt å oppfylle betingelsen for å stoppe løkken. Uten dette vil løkken kjøre uendelig, noe som hindrer videre kode fra å bli utført.

Eksempel på bruk

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 det skjer, må du etterfylle for å opprettholde beholdningen.

En while-løkke er nyttig i denne situasjonen fordi den lar deg etterfylle melk i flere omganger til beholdningen når ønsket nivå. Uten en while-løkke måtte du ha beregnet nøyaktig hvor mye melk som skulle etterfylles på én gang.

For eksempel kan en butikkmedarbeider kun etterfylle en fast mengde melk per tur (f.eks. 20 pakker per etterfylling). Hvis beholdningen ikke er fullt etterfylt, går medarbeideren tilbake til lageret for å hente en ny omgang melk.

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

Merk

milk_stock += restock_quantity er det samme som milk_stock = milk_stock + restock_quantity. Det er bare en mer kortfattet og lesbar måte å uttrykke den samme operasjonen på.

Flytskjemaet ovenfor illustrerer logikken bak while-løkka som brukes for å håndtere melkebeholdningen. Legg merke til hvordan tellevariabelen milk_stock, som starter på 15, økes med restock_quantity for hver gjennomgang av løkka.

Løkken fortsetter å kjøre til milk_stock overstiger grenseverdien min_stock50, og stopper deretter.

Oppgave

Swipe to start coding

Administrer varelageret i en dagligvarebutikk ved å bruke while-løkker for å sikre at Bread, Eggs og Apples oppfyller sine minimumsbeholdninger. Påfyllingsmengder lagres i en ordbok.

  • Bruk en while-løkke for å sjekke om "Bread" er under minimumsbeholdningen. Hvis det er tilfelle, øk beholdningen ved å bruke tilsvarende påfyllingsmengde fra ordboken.
  • Gjenta samme logikk for "Eggs" og "Apples", hver med sin egen while-løkke.
  • Etter påfylling, gå gjennom inventory-ordboken med en for-løkke og skriv ut de endelige beholdningene for alle varer.

Krav til utdata

  • For hver vare som fylles på, skriv ut:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Etter all påfylling, skriv ut Final Inventory after restocking: etterfulgt av de oppdaterte beholdningene:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Sett inn en linjeskift før den endelige beholdningen ved å bruke \n.
  • Bruk f-strenger for formatering og enkeltfnutter inne i dobbeltfnuttede strenger for ordboknøkler.

Merk

For å unngå syntaksfeil i f-strenger, bruk dobbeltfnutter rundt strengen og enkeltfnutter inni: f"Bread stock is low: {inventory['Bread'][0]} units."
Bruk \n for å starte en ny linje i utdataene: "First line.\nSecond line."

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 2
Vi beklager at noe gikk galt. Hva skjedde?

Spør AI

expand
ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

book
While-løkker

while-løkker er det sentrale verktøyet for å håndtere ubestemt iterasjon, noe som er nyttig i situasjoner der antall iterasjoner ikke er kjent på forhånd, som for eksempel å overvåke lagerbeholdning inntil de når en bestemt grense.

Se hvordan Alex demonstrerer bruk av while-løkker for å håndtere dynamiske situasjoner:

En while-løkke i Python kjører en kodeblokk gjentatte ganger så lenge en spesifisert betingelse er True.

Syntaks

For å starte en while-løkke definerer du en teller-variabel og følger den med nøkkelordet while og en boolsk betingelse. Betingelsen etterfølges av et kolon :, som indikerer starten på løkkens kodeblokk.

Løkken vil kjøre gjentatte ganger inntil betingelsen blir False. Vanligvis oppdateres teller-variabelen inne i løkken for til slutt å gjøre betingelsen False og stoppe løkken.

Se dette eksempelet 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 eksempelet fungerer queue_length som vår teller-variabel, og starter på 5. For hver gjennomgang 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 teller-variabelen inne i løkken for til slutt å oppfylle betingelsen for å stoppe løkken. Uten dette vil løkken kjøre uendelig, noe som hindrer videre kode fra å bli utført.

Eksempel på bruk

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 det skjer, må du etterfylle for å opprettholde beholdningen.

En while-løkke er nyttig i denne situasjonen fordi den lar deg etterfylle melk i flere omganger til beholdningen når ønsket nivå. Uten en while-løkke måtte du ha beregnet nøyaktig hvor mye melk som skulle etterfylles på én gang.

For eksempel kan en butikkmedarbeider kun etterfylle en fast mengde melk per tur (f.eks. 20 pakker per etterfylling). Hvis beholdningen ikke er fullt etterfylt, går medarbeideren tilbake til lageret for å hente en ny omgang melk.

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

Merk

milk_stock += restock_quantity er det samme som milk_stock = milk_stock + restock_quantity. Det er bare en mer kortfattet og lesbar måte å uttrykke den samme operasjonen på.

Flytskjemaet ovenfor illustrerer logikken bak while-løkka som brukes for å håndtere melkebeholdningen. Legg merke til hvordan tellevariabelen milk_stock, som starter på 15, økes med restock_quantity for hver gjennomgang av løkka.

Løkken fortsetter å kjøre til milk_stock overstiger grenseverdien min_stock50, og stopper deretter.

Oppgave

Swipe to start coding

Administrer varelageret i en dagligvarebutikk ved å bruke while-løkker for å sikre at Bread, Eggs og Apples oppfyller sine minimumsbeholdninger. Påfyllingsmengder lagres i en ordbok.

  • Bruk en while-løkke for å sjekke om "Bread" er under minimumsbeholdningen. Hvis det er tilfelle, øk beholdningen ved å bruke tilsvarende påfyllingsmengde fra ordboken.
  • Gjenta samme logikk for "Eggs" og "Apples", hver med sin egen while-løkke.
  • Etter påfylling, gå gjennom inventory-ordboken med en for-løkke og skriv ut de endelige beholdningene for alle varer.

Krav til utdata

  • For hver vare som fylles på, skriv ut:
    "<Item> stock is low: <$current_stock> units. Restocking..."
  • Etter all påfylling, skriv ut Final Inventory after restocking: etterfulgt av de oppdaterte beholdningene:
    "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
  • Sett inn en linjeskift før den endelige beholdningen ved å bruke \n.
  • Bruk f-strenger for formatering og enkeltfnutter inne i dobbeltfnuttede strenger for ordboknøkler.

Merk

For å unngå syntaksfeil i f-strenger, bruk dobbeltfnutter rundt strengen og enkeltfnutter inni: f"Bread stock is low: {inventory['Bread'][0]} units."
Bruk \n for å starte en ny linje i utdataene: "First line.\nSecond line."

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 2
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt