For-løkker
Velkommen til seksjonen dedikert til løkker!
I dette kapittelet skal vi utforske hvordan løkker fungerer som et sentralt verktø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 gjør det mulig å utføre en kodeblokk gjentatte ganger for hvert element i en samling (itererbart objekt). Dette bør du vite om for
-løkker:
Syntaks
Start en for
-løkke med nøkkelordet for
, etterfulgt av et variabelnavn som item
for å representere hvert element i sekvensen. Dette etterfølges av nøkkelordet in
og deretter det itererbare objektet, for eksempel groceryItems
. Kodeblokken inne i løkken utføres én gang for hvert element.
I dette eksempelet fungerer item
som iteratorvariabelen som sekvensielt får tilgang til hvert element i listen groceryItems
og utfører funksjonen print()
for hver av dem:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iterasjon refererer til prosessen med å utføre en kodeblokk gjentatte ganger. Python støtter to hovedtyper av iterasjon:
Bestemt iterasjon
Der antall iterasjoner er kjent på forhånd. for
-løkker er et klassisk eksempel, og stopper automatisk når de når slutten av sekvensen.
Ubestemt iterasjon
Hvor utførelsen fortsetter til en spesifikk betingelse er oppfylt, vanligvis håndtert av while
-løkker, som vil bli gjennomgått i detalj i neste kapittel.
Eksempelapplikasjoner
for
-løkker i Python kan brukes med alle iterable objekter (lists
, tuples
, dictionaries
, strings
), noe som muliggjør datamanipulering for hvert enkelt element.
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 tydelig syntaks som forenkler koden for repeterende oppgaver.
Her er hvordan du kan bruke en for
-løkke til å 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)
Ved bruk av en for
-løkke med et dictionary, vil iterering direkte over dictionaryen som standard gå gjennom nøklene.
Dette kan forventes når du itererer direkte over et dictionary:
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)
Legg merke til at iteratorvariabelen product
kun får tilgang til ordbokens nøkler.
For å iterere over verdiene i en ordbok, kan du bruke metoden values()
.
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)
Hvis du trenger å få tilgang til nøkler og verdier samtidig, lar metoden items()
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 — én for nøkkelen (product
) og én 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.")
Merk
I dette eksemplet bruker vi f-strenger (også kjent som formaterte streng-litteraler) for å sette inn variabler direkte i strenger. Syntaksen er enkel: legg til en
f
foran det innledende 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 seg.
Ved å bruke kunnskapen din om if/else
, boolske operatorer og for
-løkker, kan vi utfø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.")
Merk
Du legger kanskje merke til at vi har plassert
if
-setninger inne ifor
-løkka, noe som gir ekstra innrykk tilif
-blokken. Som nevnt tidligere, kan hver innrykket kodeblokk behandles som uavhengig, uavhengig av hvor den er plassert. Det viktigste er å sørge for at innrykket er konsekvent og korrekt mellom dem.
Swipe to start coding
Administrer lagerbeholdning og kampanjer i en dagligvarebutikk ved å iterere gjennom varelageret, kontrollere påfyllingsbetingelser og anvende kampanjer.
Gå gjennom hvert produkt i inventory
-ordboken, og:
- Hvis et produkts nåværende lager er mindre enn eller likt dets minimumslager.
- Skriv ut en melding om påfylling.
- Øk lageret med
20
og oppdater verdien i ordboken. - Skriv deretter ut det oppdaterte lageret.
- Bruk en annen
if
-setning for å sjekke om produktet finnes ipromotions
-ordboken og skriv ut melding. Hvis ikke, skriv ut en melding om at ingen kampanje er tilgjengelig.
Krav til utdata
For hvert element, skriv ut:
--- Processing: <item> ---
- Hvis påfylling er nødvendig:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
- Hvis kampanje finnes:
Promotion for <item>: <promotion_details>
- Hvis ikke:
No promotions for <item>
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.17
For-løkker
Sveip for å vise menyen
Velkommen til seksjonen dedikert til løkker!
I dette kapittelet skal vi utforske hvordan løkker fungerer som et sentralt verktø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 gjør det mulig å utføre en kodeblokk gjentatte ganger for hvert element i en samling (itererbart objekt). Dette bør du vite om for
-løkker:
Syntaks
Start en for
-løkke med nøkkelordet for
, etterfulgt av et variabelnavn som item
for å representere hvert element i sekvensen. Dette etterfølges av nøkkelordet in
og deretter det itererbare objektet, for eksempel groceryItems
. Kodeblokken inne i løkken utføres én gang for hvert element.
I dette eksempelet fungerer item
som iteratorvariabelen som sekvensielt får tilgang til hvert element i listen groceryItems
og utfører funksjonen print()
for hver av dem:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Iterasjon refererer til prosessen med å utføre en kodeblokk gjentatte ganger. Python støtter to hovedtyper av iterasjon:
Bestemt iterasjon
Der antall iterasjoner er kjent på forhånd. for
-løkker er et klassisk eksempel, og stopper automatisk når de når slutten av sekvensen.
Ubestemt iterasjon
Hvor utførelsen fortsetter til en spesifikk betingelse er oppfylt, vanligvis håndtert av while
-løkker, som vil bli gjennomgått i detalj i neste kapittel.
Eksempelapplikasjoner
for
-løkker i Python kan brukes med alle iterable objekter (lists
, tuples
, dictionaries
, strings
), noe som muliggjør datamanipulering for hvert enkelt element.
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 tydelig syntaks som forenkler koden for repeterende oppgaver.
Her er hvordan du kan bruke en for
-løkke til å 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)
Ved bruk av en for
-løkke med et dictionary, vil iterering direkte over dictionaryen som standard gå gjennom nøklene.
Dette kan forventes når du itererer direkte over et dictionary:
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)
Legg merke til at iteratorvariabelen product
kun får tilgang til ordbokens nøkler.
For å iterere over verdiene i en ordbok, kan du bruke metoden values()
.
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)
Hvis du trenger å få tilgang til nøkler og verdier samtidig, lar metoden items()
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 — én for nøkkelen (product
) og én 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.")
Merk
I dette eksemplet bruker vi f-strenger (også kjent som formaterte streng-litteraler) for å sette inn variabler direkte i strenger. Syntaksen er enkel: legg til en
f
foran det innledende 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 seg.
Ved å bruke kunnskapen din om if/else
, boolske operatorer og for
-løkker, kan vi utfø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.")
Merk
Du legger kanskje merke til at vi har plassert
if
-setninger inne ifor
-løkka, noe som gir ekstra innrykk tilif
-blokken. Som nevnt tidligere, kan hver innrykket kodeblokk behandles som uavhengig, uavhengig av hvor den er plassert. Det viktigste er å sørge for at innrykket er konsekvent og korrekt mellom dem.
Swipe to start coding
Administrer lagerbeholdning og kampanjer i en dagligvarebutikk ved å iterere gjennom varelageret, kontrollere påfyllingsbetingelser og anvende kampanjer.
Gå gjennom hvert produkt i inventory
-ordboken, og:
- Hvis et produkts nåværende lager er mindre enn eller likt dets minimumslager.
- Skriv ut en melding om påfylling.
- Øk lageret med
20
og oppdater verdien i ordboken. - Skriv deretter ut det oppdaterte lageret.
- Bruk en annen
if
-setning for å sjekke om produktet finnes ipromotions
-ordboken og skriv ut melding. Hvis ikke, skriv ut en melding om at ingen kampanje er tilgjengelig.
Krav til utdata
For hvert element, skriv ut:
--- Processing: <item> ---
- Hvis påfylling er nødvendig:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
Updated stock for <item>: <updated_stock>
- Hvis kampanje finnes:
Promotion for <item>: <promotion_details>
- Hvis ikke:
No promotions for <item>
Løsning
Takk for tilbakemeldingene dine!
Awesome!
Completion rate improved to 2.17single