Range-Funksjon
Funksjonen range()
i Python er en innebygd funksjon som genererer en sekvens av tall.
Den brukes ofte til å iterere over en sekvens med løkker, spesielt når du trenger å utføre en løkke et bestemt antall ganger.
Dette er ideelt for å håndtere oppgaver som involverer et forutsigbart repetisjonsmønster, som å fylle opp hyller eller planlegge salg i en dagligvarebutikk.
La oss se hvordan Alex bruker range()
-funksjonen for å håndtere rutineoppgaver i vår dagligvarebutikk-scenario effektivt:
Syntaks og Argumenter
range()
-funksjonen kan ta opptil tre argumenter, noe som gjør den allsidig for ulike løkkescenarier.
Her er den generelle syntaksen for range
-funksjonen:
python
start
: dette er det første tallet i sekvensen. Det er valgfritt , og hvis du ikke inkluderer det, vil sekvensen starte på0
.stop
: dette er det siste tallet i sekvensen, men sekvensen vil stoppe rett før dette tallet . Dette argumentet er påkrevd .step
: dette er mengden du legger til (eller trekker fra) mellom hvert tall i sekvensen. Det er valgfritt , og hvis du ikke inkluderer det, vil sekvensen øke med1
hver gang.
Nå som du har en forståelse av range()
-funksjonens syntaks, la oss utforske noen eksempler for å se hvordan hvert argument — start
, stop
og step
— påvirker oppførselen til løkker.
Et Enkelt Argument
Når range()
-funksjonen gis et enkelt argument, behandler den dette som stop
-parameteren.
I vårt eksempel genererer den en sekvens av 7 elementer som starter fra 0
og slutter på 6
. Løkken itererer over disse elementene, som representerer de første 7 dagene butikken er åpen.
# Announce store opening every day for 7 days for day in range(7): print(f"Good morning! The store is now open on day {day}.")
Merk
Sekvensen starter på
0
og slutter på6
. Dette skjer fordi Python ofte starter tellingen fra0
, noe som reduserer behovet for å justere indeksering i mange situasjoner.
To Argumenter
Når to argumenter er gitt, som 25
(start
) og 32
(stop
), genererer range()
en sekvens fra 25
til 31
(siden stop
-verdien er ekskludert fra sekvensen).
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Merk
Med denne metoden for indeksering, hvor det siste elementet er ekskludert, kan du enkelt beregne antall elementer i sekvensen ved å trekke
start
-argumentet frastopp
-argumentet. For eksempel,32 - 25 = 7
, som betyr at det er 7 elementer i sekvensen.
Tre Argumenter
Ved å legge til et tredje argument til range()
, introduserer du en step
-verdi, som definerer inkrementet mellom hvert tall i sekvensen.
I dette eksempelet tar range()
1
(start
), 13
(stop
), og 3
(step
), og produserer tallene 1, 4, 7, 10
. Disse kan representere starttidene for personalets skift i løpet av en 12-timers arbeidsdag.
# Schedule staff shifts every three hours throughout a 12-hour day for hour in range(1, 13, 3): print(f"Staff shift starts at hour {hour}.")
Eksempelapplikasjon
Med range()
-funksjonen kan vi planlegge oppgaver for hver dag i uken for å sikre at alle avdelinger i butikken er dekket.
Denne løkken kjører 7 ganger fordi range(7)
lager tall fra 0
til 6
(totalt 7 elementer). I hver løkke tar variabelen day
en verdi fra 0
til 6
, som deretter brukes til å få tilgang til elementer fra både weekly_tasks
og weekdays
-listene.
# List of daily tasks for a week weekly_tasks = [ "Restock Fruits", "Clean Dairy Section", "Review Meat Inventory", "Restock Vegetables", "Check Bakery Expiry Dates", "Organize Front Displays", "Prepare Weekly Sales Report" ] # List of weekdays corresponding to each task weekdays = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] # Loop through each day using the range function for day in range(7): task = weekly_tasks[day] # Access the task corresponding to the current day weekday = weekdays[day] # Access the corresponding weekday print(f"{weekday} Task: {task}")
Swipe to start coding
Bruk to lister — weekdays
og daily_promotions
— for å skrive ut kampanjen tildelt hver dag i uken.
- Bruk en
for
-løkke medrange()
-funksjonen for å iterere gjennom listeindeksene. - I hver iterasjon:
- Hent den nåværende
weekday
fraweekdays
-listen. - Hent den tilsvarende kampanjen fra
daily_promotions
ved å bruke samme indeks.
- Hent den nåværende
- Skriv ut begge verdiene i det spesifiserte formatet.
Utgangskrav
- For hver dag, skriv ut:
<weekday>: Kampanje på <promotion>
Merk
Sørg for at begge listene har samme antall elementer for å unngå indekseringsfeil.
Løsning
Takk for tilbakemeldingene dine!