Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære For-Løkker | Løkker
Introduksjon til Python

Sveip for å vise menyen

book
For-Løkker

Velkommen til seksjonen dedikert til løkker!

I dette kapittelet skal vi dykke ned i hvordan løkker fungerer som et nøkkelverktøy for automatisering av repeterende oppgaver og er essensielle for effektiv håndtering av lister og andre itererbare datatyper.

Bli med Alex når han demonstrerer bruken av for-løkker for å forenkle operasjoner i vår dagligvarebutikk:

Bruken av for-løkker i Python lar deg utføre en kodeblokk gjentatte ganger for hvert element i en samling (itererbart objekt). Her er hva du trenger å vite om for-løkker:

Syntaks

Start en for-løkke med for-nøkkelordet, etterfulgt av et variabelnavn som item for å representere hvert element i sekvensen. Dette etterfølges av in-nøkkelordet og deretter det itererbare objektet som groceryItems. Kodeblokken innenfor løkken utføres én gang for hvert element.

I dette eksemplet fungerer item som iteratorvariabelen som sekvensielt får tilgang til hvert element i groceryItems-listen og utfører print()-funksjonen for hver enkelt:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iterasjon refererer til prosessen med å utføre en kodeblokk gjentatte ganger. Python støtter to hovedtyper av iterasjon:

Definert Iterasjon

Hvor antall iterasjoner er kjent på forhånd. for-løkker er et klassisk eksempel, som automatisk stopper når de når slutten av sekvensen.

Udefinert Iterasjon

Hvor utførelsen fortsetter til en spesifikk betingelse er oppfylt, vanligvis håndtert av while-løkker, som vil bli utforsket i detalj i det kommende kapittelet.

Eksempelapplikasjoner

for-løkker i Python kan brukes med enhver itererbar objekt (lists, tuples, dictionaries, strings), som tillater datamanipulering på en per-element basis.

Enten du trenger å få tilgang til elementer i en liste, nøkler eller verdier i en ordbok, eller tegn i en streng, gir for-løkker en klar syntaks som forenkler koden for repeterende oppgaver.

Slik kan du bruke en for-løkke for å iterere over elementene i en streng og en tuple, på samme måte som vi så med lister:

123456789
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
copy

Når du bruker en for-løkke med en ordbok, vil iterering direkte over ordboken løkke gjennom nøklene som standard.

Her er hva du kan forvente når du itererer direkte over en ordbok:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
copy

Legg merke til hvordan iteratorvariabelen product kun får tilgang til ordbokens nøkler.

For å iterere over verdiene i en ordbok, kan du bruke values()-metoden.

Dette er nyttig for operasjoner som krever tilgang til verdier uten å måtte referere til nøklene:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
copy

Hvis du trenger å få tilgang til nøkler og verdier samtidig, lar items()-metoden deg iterere gjennom nøkkel-verdi-par i en ordbok.

For å bruke denne metoden i en for-løkke, spesifiserer vi to variabler før in-nøkkelordet — en for nøkkelen (product) og en for verdien (stock):

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
copy

Merk

I dette eksemplet bruker vi f-strenger (også kjent som formaterte strengbokstaver) for å innebygge variabler direkte i strenger. Syntaksen er enkel: legg til en f før det åpne anførselstegnet ", og plasser variabler eller uttrykk inne i krøllparenteser {} i strengen. Denne metoden gjør det mye mer lesbart å kombinere strenger og variabler i print-setninger, så det er verdt å lære.

Med utgangspunkt i din kunnskap om if/else, boolske operatorer og for-løkker, kan vi kjøre en enkel lagerkontroll på en ordbok:

123456789101112131415161718
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
copy

Merk

Du vil kanskje legge merke til at vi har plassert if-setninger inne i for-løkken, noe som la til ekstra innrykk i if-blokken. Som nevnt tidligere, kan hver innrykkede kodeblokk behandles som uavhengig, uansett hvor den er plassert. Nøkkelen er å sikre at innrykket er konsekvent og korrekt mellom dem.

Oppgave

Swipe to start coding

Administrer lager og kampanjer i en dagligvarebutikk ved å loope gjennom inventaret, sjekke restokkingsbetingelser og anvende kampanjer.

  • Loop gjennom hvert produkt i inventory-ordlisten.
  • Inne i loopen, hent current_stock og min_stock fra inventarlisten.
  • Bruk en if-setning for å sjekke om nåværende lager er mindre enn eller lik minimumslager:
    • Hvis ja, skriv ut en restokkingmelding, øk lageret med 20, oppdater inventaret, og skriv ut oppdateringsmeldingen.
  • Bruk en annen if-setning for å sjekke om produktet finnes i promotions-ordlisten.

Utdata Krav

For hvert element, skriv ut:

  • --- Processing: <item> ---

  • Hvis restokking er nødvendig:
    <item> trenger restokking. Nåværende lager: <current_stock>. Minimumskrav: <min_stock>

    Oppdatert lager for <item>: <updated_stock>

  • Hvis kampanje eksisterer:
    Kampanje for <item>: <promotion_details>

  • Hvis ikke:
    Ingen kampanjer for <item>

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 1
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
For-Løkker

Velkommen til seksjonen dedikert til løkker!

I dette kapittelet skal vi dykke ned i hvordan løkker fungerer som et nøkkelverktøy for automatisering av repeterende oppgaver og er essensielle for effektiv håndtering av lister og andre itererbare datatyper.

Bli med Alex når han demonstrerer bruken av for-løkker for å forenkle operasjoner i vår dagligvarebutikk:

Bruken av for-løkker i Python lar deg utføre en kodeblokk gjentatte ganger for hvert element i en samling (itererbart objekt). Her er hva du trenger å vite om for-løkker:

Syntaks

Start en for-løkke med for-nøkkelordet, etterfulgt av et variabelnavn som item for å representere hvert element i sekvensen. Dette etterfølges av in-nøkkelordet og deretter det itererbare objektet som groceryItems. Kodeblokken innenfor løkken utføres én gang for hvert element.

I dette eksemplet fungerer item som iteratorvariabelen som sekvensielt får tilgang til hvert element i groceryItems-listen og utfører print()-funksjonen for hver enkelt:

1234
groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
copy

Iterasjon refererer til prosessen med å utføre en kodeblokk gjentatte ganger. Python støtter to hovedtyper av iterasjon:

Definert Iterasjon

Hvor antall iterasjoner er kjent på forhånd. for-løkker er et klassisk eksempel, som automatisk stopper når de når slutten av sekvensen.

Udefinert Iterasjon

Hvor utførelsen fortsetter til en spesifikk betingelse er oppfylt, vanligvis håndtert av while-løkker, som vil bli utforsket i detalj i det kommende kapittelet.

Eksempelapplikasjoner

for-løkker i Python kan brukes med enhver itererbar objekt (lists, tuples, dictionaries, strings), som tillater datamanipulering på en per-element basis.

Enten du trenger å få tilgang til elementer i en liste, nøkler eller verdier i en ordbok, eller tegn i en streng, gir for-løkker en klar syntaks som forenkler koden for repeterende oppgaver.

Slik kan du bruke en for-løkke for å iterere over elementene i en streng og en tuple, på samme måte som vi så med lister:

123456789
# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
copy

Når du bruker en for-løkke med en ordbok, vil iterering direkte over ordboken løkke gjennom nøklene som standard.

Her er hva du kan forvente når du itererer direkte over en ordbok:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
copy

Legg merke til hvordan iteratorvariabelen product kun får tilgang til ordbokens nøkler.

For å iterere over verdiene i en ordbok, kan du bruke values()-metoden.

Dette er nyttig for operasjoner som krever tilgang til verdier uten å måtte referere til nøklene:

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
copy

Hvis du trenger å få tilgang til nøkler og verdier samtidig, lar items()-metoden deg iterere gjennom nøkkel-verdi-par i en ordbok.

For å bruke denne metoden i en for-løkke, spesifiserer vi to variabler før in-nøkkelordet — en for nøkkelen (product) og en for verdien (stock):

1234567
# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
copy

Merk

I dette eksemplet bruker vi f-strenger (også kjent som formaterte strengbokstaver) for å innebygge variabler direkte i strenger. Syntaksen er enkel: legg til en f før det åpne anførselstegnet ", og plasser variabler eller uttrykk inne i krøllparenteser {} i strengen. Denne metoden gjør det mye mer lesbart å kombinere strenger og variabler i print-setninger, så det er verdt å lære.

Med utgangspunkt i din kunnskap om if/else, boolske operatorer og for-løkker, kan vi kjøre en enkel lagerkontroll på en ordbok:

123456789101112131415161718
# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
copy

Merk

Du vil kanskje legge merke til at vi har plassert if-setninger inne i for-løkken, noe som la til ekstra innrykk i if-blokken. Som nevnt tidligere, kan hver innrykkede kodeblokk behandles som uavhengig, uansett hvor den er plassert. Nøkkelen er å sikre at innrykket er konsekvent og korrekt mellom dem.

Oppgave

Swipe to start coding

Administrer lager og kampanjer i en dagligvarebutikk ved å loope gjennom inventaret, sjekke restokkingsbetingelser og anvende kampanjer.

  • Loop gjennom hvert produkt i inventory-ordlisten.
  • Inne i loopen, hent current_stock og min_stock fra inventarlisten.
  • Bruk en if-setning for å sjekke om nåværende lager er mindre enn eller lik minimumslager:
    • Hvis ja, skriv ut en restokkingmelding, øk lageret med 20, oppdater inventaret, og skriv ut oppdateringsmeldingen.
  • Bruk en annen if-setning for å sjekke om produktet finnes i promotions-ordlisten.

Utdata Krav

For hvert element, skriv ut:

  • --- Processing: <item> ---

  • Hvis restokking er nødvendig:
    <item> trenger restokking. Nåværende lager: <current_stock>. Minimumskrav: <min_stock>

    Oppdatert lager for <item>: <updated_stock>

  • Hvis kampanje eksisterer:
    Kampanje for <item>: <promotion_details>

  • Hvis ikke:
    Ingen kampanjer for <item>

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 1
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