Range-Funktion
Funktionen range()
i Python är en inbyggd funktion som genererar en sekvens av nummer.
Den används ofta för att iterera över en sekvens med loopar, särskilt när du behöver köra en loop ett specifikt antal gånger.
Detta är idealiskt för att hantera uppgifter som involverar ett förutsägbart repetitionsmönster, såsom att fylla på hyllor eller schemalägga försäljningar i en livsmedelsbutiksmiljö.
Låt oss se hur Alex använder range()
-funktionen för att effektivt hantera rutinuppgifter i vårt livsmedelsbutiksscenario:
Syntax och Argument
Funktionen range()
kan ta upp till tre argument, vilket gör den mångsidig för olika loopscenarier.
Här är den allmänna syntaxen för range
-funktionen:
python
start
: detta är det första numret i sekvensen. Det är valfritt , och om du inte inkluderar det, börjar sekvensen vid0
.stop
: detta är det sista numret i sekvensen, men sekvensen kommer att stanna precis före detta nummer . Detta argument är obligatoriskt .step
: detta är mängden du lägger till (eller drar ifrån) mellan varje nummer i sekvensen. Det är valfritt , och om du inte inkluderar det, kommer sekvensen att öka med1
varje gång.
Nu när du har en förståelse för range()
-funktionens syntax, låt oss utforska några exempel för att se hur varje argument — start
, stop
och step
— påverkar looparnas beteende.
Ett Enkelt Argument
När range()
-funktionen ges ett enda argument, behandlar den detta som stop
-parametern.
I vårt exempel genererar den en sekvens av 7 element som börjar från 0
och slutar vid 6
. Loopen itererar över dessa element, vilket representerar de första 7 dagarna butiken är öppen.
# 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}.")
Notera
Sekvensen börjar vid
0
och slutar vid6
. Detta händer eftersom Python ofta börjar räkna från0
, vilket minskar behovet av att justera indexering i många situationer.
Två Argument
När två argument tillhandahålls, som 25
(start
) och 32
(stop
), genererar range()
en sekvens från 25
till 31
(eftersom stop
-värdet utesluts från sekvensen).
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Notera
Med denna metod för indexering, där slutet elementet är uteslutet, kan du enkelt beräkna antalet element i sekvensen genom att subtrahera
start
-argumentet frånstop
-argumentet. Till exempel,32 - 25 = 7
, vilket betyder att det finns 7 element i sekvensen.
Tre Argument
Genom att lägga till ett tredje argument till range()
, introducerar du ett step
-värde, som definierar inkrementet mellan varje nummer i sekvensen.
I detta exempel tar range()
1
(start
), 13
(stop
), och 3
(step
), vilket ger numren 1, 4, 7, 10
. Dessa kan representera starttimmarna för personalens skift under en 12-timmars arbetsdag.
# 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}.")
Exempelapplikation
Med range()
-funktionen kan vi schemalägga uppgifter för varje dag i veckan för att säkerställa att alla avdelningar i butiken är täckta.
Denna loop körs 7 gånger eftersom range(7)
skapar nummer från 0
till 6
(totalt 7 element). I varje loop tar variabeln day
ett värde från 0
till 6
, vilket sedan används för att komma åt element från både weekly_tasks
och weekdays
listor.
# 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
Använd två listor — weekdays
och daily_promotions
— för att skriva ut den kampanj som tilldelats varje veckodag.
- Använd en
for
-loop medrange()
-funktionen för att iterera genom listindex. - Vid varje iteration:
- Hämta den aktuella
weekday
frånweekdays
-listan. - Hämta motsvarande kampanj från
daily_promotions
med samma index.
- Hämta den aktuella
- Skriv ut båda värdena i det angivna formatet.
Utmatningskrav
- För varje dag, skriv ut:
<weekday>: Kampanj på <promotion>
Notera
Se till att båda listorna har samma antal objekt för att undvika indexeringsfel.
Lösning
Tack för dina kommentarer!