Range-Funksjonen
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 oppgaver som innebærer 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 effektivt i vårt dagligvarebutikk-scenario:
Syntaks og argumenter
Funksjonen range()
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, starter sekvensen 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 forstått syntaksen til range()
-funksjonen, la oss utforske noen eksempler for å se hvordan hvert argument — start
, stop
og step
— påvirker oppførselen til løkker.
Ett enkelt argument
Når funksjonen range()
får ett enkelt argument, tolkes dette som stop
-parameteren.
I vårt eksempel genererer den en sekvens med 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 å telle fra0
, noe som reduserer behovet for å justere indeksering i mange situasjoner.
To argumenter
Når to argumenter oppgis, som 25
(start
) og 32
(stop
), genererer range()
en sekvens fra 25
til 31
(siden stop
-verdien utelates 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, der siste element utelates, kan du enkelt beregne antall elementer i sekvensen ved å trekke
start
-argumentet frastop
-argumentet. For eksempel,32 - 25 = 7
, noe som betyr at det er 7 elementer i sekvensen.
Tre argumenter
Ved å legge til et tredje argument i range()
, introduserer du en step
-verdi, som definerer økningen 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 starttidspunktene 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}.")
Eksempel på bruk
Med range()
-funksjonen kan vi planlegge oppgaver for hver ukedag for å sikre at alle avdelinger i butikken blir dekket.
Denne løkken kjøres 7 ganger fordi range(7)
lager tall fra 0
til 6
(totalt 7 elementer). I hver iterasjon får variabelen day
en verdi fra 0
til 6
, som deretter brukes til å hente 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 som er tilordnet hver ukedag.
- Bruk en
for
-løkke medrange()
-funksjonen for å iterere gjennom listeindeksene. - I hver iterasjon:
- Hent gjeldende
weekday
fraweekdays
-listen. - Hent tilsvarende kampanje fra
daily_promotions
ved å bruke samme indeks.
- Hent gjeldende
- Skriv ut begge verdiene i det angitte formatet.
Krav til utdata
- For hver dag, skriv ut:
<weekday>: Promotion on <promotion>
Merk
Sørg for at begge listene har like mange elementer for å unngå indeksfeil.
Løsning
Takk for tilbakemeldingene dine!