Range Funktion
Funktionen range()
i Python er en indbygget funktion, der genererer en sekvens af tal.
Den bruges ofte til at iterere over en sekvens med løkker, især når du har brug for at udføre en løkke et specifikt antal gange.
Dette er ideelt til at håndtere opgaver, der involverer et forudsigeligt gentagelsesmønster, såsom at genopfylde hylder eller planlægge udsalg i en dagligvarebutik.
Lad os se, hvordan Alex bruger range()
-funktionen til effektivt at håndtere rutineopgaver i vores dagligvarebutiksscenarie:
Syntaks og Argumenter
Funktionen range()
kan tage op til tre argumenter, hvilket gør den alsidig til forskellige loop-scenarier.
Her er den generelle syntaks for range
funktionen:
python
start
: dette er det første tal i sekvensen. Det er valgfrit , og hvis du ikke inkluderer det, vil sekvensen starte ved0
.stop
: dette er det sidste tal i sekvensen, men sekvensen vil stoppe lige før dette tal . Dette argument er påkrævet .step
: dette er den mængde du tilføjer (eller trækker fra) mellem hvert tal i sekvensen. Det er valgfrit , og hvis du ikke inkluderer det, vil sekvensen øges med1
hver gang.
Nu hvor du har en forståelse af range()
funktionens syntaks, lad os udforske nogle eksempler for at se, hvordan hvert argument — start
, stop
og step
— påvirker loops' adfærd.
Et Enkelt Argument
Når range()
funktionen får et enkelt argument, behandler den dette som stop
parameteren.
I vores eksempel genererer den en sekvens af 7 elementer startende fra 0
og sluttende ved 6
. Loopet itererer over disse elementer, hvilket repræsenterer de første 7 dage butikken er åben.
# 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}.")
Bemærk
Sekvensen starter ved
0
og slutter ved6
. Dette sker, fordi Python ofte starter tællingen fra0
, hvilket reducerer behovet for at justere indeksering i mange situationer.
To Argumenter
Når to argumenter gives, som 25
(start
) og 32
(stop
), genererer range()
en sekvens fra 25
til 31
(da stop
-værdien er udelukket 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}.")
Bemærk
Med denne metode til indeksering, hvor det sidste element er udelukket, kan du nemt beregne antallet af elementer i sekvensen ved at trække
start
-argumentet frastop
-argumentet. For eksempel,32 - 25 = 7
, hvilket betyder, at der er 7 elementer i sekvensen.
Tre Argumenter
Ved at tilføje et tredje argument til range()
, introducerer du en step
-værdi, som definerer inkrementet mellem hvert tal i sekvensen.
I dette eksempel tager range()
1
(start
), 13
(stop
), og 3
(step
), hvilket producerer tallene 1, 4, 7, 10
. Disse kan repræsentere starttidspunkterne for medarbejderskift i løbet af en 12-timers arbejdsdag.
# 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}.")
Eksempelapplikation
Med range()
-funktionen kan vi planlægge opgaver for hver dag i ugen for at sikre, at alle sektioner af butikken er dækket.
Denne løkke kører 7 gange, fordi range(7)
skaber tal fra 0
til 6
(i alt 7 elementer). I hver løkke tager variablen day
en værdi fra 0
til 6
, som derefter bruges til at få adgang til elementer fra både weekly_tasks
og weekdays
listerne.
# 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
Brug to lister — weekdays
og daily_promotions
— til at udskrive den promotion, der er tildelt hver dag i ugen.
- Brug en
for
-løkke medrange()
-funktionen til at iterere gennem listeindekserne. - I hver iteration:
- Få den aktuelle
weekday
fraweekdays
-listen. - Få den tilsvarende promotion fra
daily_promotions
ved hjælp af det samme indeks.
- Få den aktuelle
- Udskriv begge værdier i det angivne format.
Outputkrav
- For hver dag, udskriv:
<weekday>: Promotion on <promotion>
Bemærk
Sørg for, at begge lister har det samme antal elementer for at undgå indekseringsfejl.
Løsning
Tak for dine kommentarer!