Range-Funktion
Die Funktion range()
in Python ist eine eingebaute Funktion, die eine Zahlenfolge erzeugt.
Sie wird häufig verwendet, um mit Schleifen über eine Sequenz zu iterieren, insbesondere wenn eine Schleife eine bestimmte Anzahl von Durchläufen ausführen soll.
Dies ist ideal für Aufgaben mit vorhersehbarem Wiederholungsmuster, wie das Auffüllen von Regalen oder das Planen von Sonderaktionen in einem Supermarkt.
Sehen wir uns an, wie Alex die Funktion range()
nutzt, um Routineaufgaben in unserem Supermarkt-Szenario effizient zu verwalten:
Syntax und Argumente
Die Funktion range()
kann bis zu drei Argumente aufnehmen und ist dadurch vielseitig für verschiedene Schleifen-Szenarien einsetzbar.
Hier ist die allgemeine Syntax der Funktion range
:
python
start
: Dies ist die erste Zahl der Sequenz. Sie ist optional; wenn sie nicht angegeben wird, beginnt die Sequenz bei0
.stop
: Dies ist die letzte Zahl der Sequenz, aber die Sequenz endet direkt vor dieser Zahl. Dieses Argument ist erforderlich.step
: Dies ist der Wert, um den die Sequenz erhöht (oder verringert) wird. Er ist optional; wenn er nicht angegeben wird, erhöht sich die Sequenz jeweils um1
.
Nachdem Sie nun die Syntax der Funktion range()
kennen, sehen wir uns einige Beispiele an, um zu verstehen, wie die Argumente start
, stop
und step
das Verhalten von Schleifen beeinflussen.
Ein einzelnes Argument
Wenn die Funktion range()
nur ein Argument erhält, wird dieses als stop
-Parameter behandelt.
In unserem Beispiel erzeugt sie eine Sequenz von 7 Elementen, beginnend bei 0
und endend bei 6
. Die Schleife iteriert über diese Elemente und stellt die ersten 7 Tage dar, an denen das Geschäft geöffnet ist.
# 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}.")
Hinweis
Die Sequenz beginnt bei
0
und endet bei6
. Dies liegt daran, dass Python häufig bei0
zu zählen beginnt, was den Anpassungsbedarf beim Indexieren in vielen Situationen verringert.
Zwei Argumente
Wenn zwei Argumente angegeben werden, wie 25
(start
) und 32
(stop
), erzeugt range()
eine Sequenz von 25
bis 31
(da der stop
-Wert von der Sequenz ausgeschlossen wird).
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Hinweis
Bei dieser Methode der Indizierung, bei der das Endelement ausgeschlossen ist, lässt sich die Anzahl der Elemente in der Sequenz einfach berechnen, indem man das Argument
start
vom Argumentstop
subtrahiert. Zum Beispiel ergibt32 - 25 = 7
, was bedeutet, dass 7 Elemente in der Sequenz enthalten sind.
Drei Argumente
Durch Hinzufügen eines dritten Arguments zu range()
wird ein step
-Wert eingeführt, der den Abstand zwischen den einzelnen Zahlen in der Sequenz definiert.
In diesem Beispiel erhält range()
die Werte 1
(start
), 13
(stop
) und 3
(step
) und erzeugt die Zahlen 1, 4, 7, 10
. Diese können die Anfangszeiten von Mitarbeiterschichten während eines 12-Stunden-Arbeitstags darstellen.
# 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}.")
Anwendungsbeispiel
Mit der Funktion range()
können Aufgaben für jeden Wochentag geplant werden, um sicherzustellen, dass alle Bereiche des Geschäfts abgedeckt sind.
Diese Schleife läuft 7 Mal, da range(7)
die Zahlen von 0
bis 6
erzeugt (insgesamt 7 Elemente). In jeder Schleife nimmt die Variable day
einen Wert von 0
bis 6
an, der dann verwendet wird, um Elemente aus den Listen weekly_tasks
und weekdays
abzurufen.
# 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
Verwendung von zwei Listen — weekdays
und daily_promotions
— zur Ausgabe der jeweils zugeordneten Aktion für jeden Wochentag.
- Einsatz einer
for
-Schleife mit derrange()
-Funktion zur Iteration über die Listenindizes. - In jeder Iteration:
- Abruf des aktuellen
weekday
aus der Listeweekdays
. - Abruf der entsprechenden Aktion aus
daily_promotions
mit demselben Index.
- Abruf des aktuellen
- Ausgabe beider Werte im vorgegebenen Format.
Ausgabekriterien
- Für jeden Tag ausgeben:
<weekday>: Promotion on <promotion>
Hinweis
Sicherstellen, dass beide Listen die gleiche Anzahl an Elementen enthalten, um Indexierungsfehler zu vermeiden.
Lösung
Danke für Ihr Feedback!