Bereik Function
De functie range()
in Python is een ingebouwde functie die een reeks getallen genereert.
Het wordt vaak gebruikt voor het itereren over een reeks met lussen, vooral wanneer je een lus een specifiek aantal keren moet uitvoeren.
Dit is ideaal voor het afhandelen van taken die een voorspelbaar herhalingspatroon hebben, zoals het aanvullen van schappen of het plannen van verkopen in een supermarkt.
Laten we eens kijken hoe Alex de functie range()
gebruikt om routinetaken in ons supermarkt scenario efficiënt te beheren:
Syntax en Argumenten
De functie range()
kan tot drie argumenten aannemen, waardoor het veelzijdig is voor verschillende lusscenario's.
Hier is de algemene syntax voor de range
functie:
python
start
: dit is het eerste nummer van de reeks. Het is optioneel, en als je het niet opneemt, begint de reeks bij0
.stop
: dit is het laatste nummer van de reeks, maar de reeks zal stoppen net voor dit nummer. Dit argument is vereist.step
: dit is de hoeveelheid die je toevoegt (of aftrekt) tussen elk nummer in de reeks. Het is optioneel, en als je het niet opneemt, zal de reeks elke keer met1
toenemen.
Nu je de syntax van de range()
functie begrijpt, laten we enkele voorbeelden bekijken om te zien hoe elk argument — start
, stop
, en step
— het gedrag van lussen beïnvloedt.
Een Enkel Argument
Wanneer de functie range()
een enkel argument krijgt, behandelt het dit als de stop
parameter.
In ons voorbeeld genereert het een reeks van 7 elementen beginnend bij 0
en eindigend bij 6
. De lus itereert over deze elementen, wat de eerste 7 dagen vertegenwoordigt dat de winkel open is.
# 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}.")
Opmerking
De reeks begint bij
0
en eindigt bij6
. Dit gebeurt omdat Python vaak begint met tellen vanaf0
, wat de noodzaak vermindert om indexering aan te passen in veel situaties.
Twee Argumenten
Wanneer twee argumenten worden gegeven, zoals 25
(start
) en 32
(stop
), genereert range()
een reeks van 25
tot 31
(aangezien de stop
waarde uitgesloten is van de reeks).
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Opmerking
Met deze methode van indexering, waarbij het laatste element is uitgesloten, kun je eenvoudig het aantal elementen in de reeks berekenen door het
start
argument af te trekken van hetstop
argument. Bijvoorbeeld,32 - 25 = 7
, wat betekent dat er 7 elementen in de reeks zijn.
Drie Argumenten
Door een derde argument toe te voegen aan range()
, introduceer je een step
waarde, die de toename tussen elk nummer in de reeks definieert.
In dit voorbeeld neemt range()
1
(start
), 13
(stop
), en 3
(step
), en produceert de nummers 1, 4, 7, 10
. Deze kunnen de starturen van personeelsshifts tijdens een 12-urige werkdag vertegenwoordigen.
# 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}.")
Voorbeeldtoepassing
Met de range()
functie kunnen we taken plannen voor elke dag van de week om ervoor te zorgen dat alle secties van de winkel gedekt zijn.
Deze lus draait 7 keer omdat range(7)
getallen van 0
tot 6
creëert (in totaal 7 elementen). In elke lus neemt de variabele day
een waarde aan van 0
tot 6
, die vervolgens wordt gebruikt om elementen uit zowel de weekly_tasks
als weekdays
lijsten te benaderen.
# 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
Gebruik twee lijsten — weekdays
en daily_promotions
— om de promotie toegekend aan elke dag van de week af te drukken.
- Gebruik een
for
-lus met derange()
-functie om door de lijstindices te itereren. - In elke iteratie:
- Verkrijg de huidige
weekday
uit deweekdays
-lijst. - Verkrijg de overeenkomstige promotie uit
daily_promotions
met dezelfde index.
- Verkrijg de huidige
- Print beide waarden in het gespecificeerde formaat.
Uitvoervereisten
- Voor elke dag, print:
<weekday>: Promotie op <promotion>
Opmerking
Zorg ervoor dat beide lijsten hetzelfde aantal items hebben om indexeringsfouten te voorkomen.
Oplossing
Bedankt voor je feedback!