Range-Funktion
Die range()
-Funktion in Python ist eine eingebaute Funktion, die eine Sequenz von Zahlen erzeugt.
Sie wird oft zum Iterieren über eine Sequenz mit Schleifen verwendet, insbesondere wenn Sie eine Schleife eine bestimmte Anzahl von Malen ausführen müssen.
Dies ist ideal für Aufgaben, die ein vorhersehbares Wiederholungsmuster beinhalten, wie das Auffüllen von Regalen oder das Planen von Verkäufen in einem Supermarkt.
Schauen wir uns an, wie Alex die range()
-Funktion nutzt, um Routineaufgaben in unserem Supermarktszenario effizient zu verwalten:
Syntax und Argumente
Die range()
-Funktion kann bis zu drei Argumente annehmen, was sie für verschiedene Schleifenszenarien vielseitig macht.
Hier ist die allgemeine Syntax für die range
-Funktion:
python
start
: Dies ist die erste Zahl der Sequenz. Es ist optional , und wenn Sie es nicht angeben, beginnt die Sequenz bei0
.stop
: Dies ist die letzte Zahl der Sequenz, aber die Sequenz wird kurz vor dieser Zahl stoppen. Dieses Argument ist erforderlich .step
: Dies ist die Menge, die Sie zwischen jeder Zahl in der Sequenz hinzufügen (oder subtrahieren) . Es ist optional , und wenn Sie es nicht angeben, erhöht sich die Sequenz jedes Mal um1
.
Jetzt, da Sie die Syntax der range()
-Funktion verstanden haben, lassen Sie uns einige Beispiele erkunden, um zu sehen, wie jedes Argument — start
, stop
und step
— das Verhalten von Schleifen beeinflusst.
Ein einzelnes Argument
Wenn der range()
-Funktion ein einzelnes Argument gegeben wird, behandelt sie dies als stop
-Parameter.
In unserem Beispiel erzeugt sie eine Sequenz von 7 Elementen, beginnend bei 0
und endend bei 6
. Die Schleife iteriert über diese Elemente und repräsentiert die ersten 7 Tage, 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 geschieht, weil Python oft bei0
zu zählen beginnt, was die Notwendigkeit zur Anpassung der Indizierung in vielen Situationen reduziert.
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 ist).
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Hinweis
Mit dieser Methode der Indizierung, bei der das Endelement ausgeschlossen ist, können Sie leicht die Anzahl der Elemente in der Sequenz berechnen, indem Sie das
start
-Argument vomstop
-Argument subtrahieren. Zum Beispiel,32 - 25 = 7
, was bedeutet, dass es 7 Elemente in der Sequenz gibt.
Drei Argumente
Durch Hinzufügen eines dritten Arguments zu range()
führen Sie einen step
-Wert ein, der den Inkrement zwischen jeder Zahl in der Sequenz definiert.
In diesem Beispiel nimmt range()
1
(start
), 13
(stop
) und 3
(step
), was die Zahlen 1, 4, 7, 10
erzeugt. Diese können die Startzeiten der Mitarbeiterschichten während eines 12-Stunden-Arbeitstages 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}.")
Beispielanwendung
Mit der range()
-Funktion können wir Aufgaben für jeden Tag der Woche planen, um sicherzustellen, dass alle Bereiche des Geschäfts abgedeckt sind.
Diese Schleife läuft 7 Mal, da range(7)
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 auf Elemente aus den Listen weekly_tasks
und weekdays
zuzugreifen.
# 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
In dieser Aufgabe arbeiten Sie mit zwei Listen: einer, die Produkte auf Promotion für jeden Tag enthält, und einer anderen, die die Namen der Wochentage enthält. Ihr Ziel ist es, eine Schleife zu schreiben, die über beide Listen iteriert und den aktuellen Wochentag zusammen mit der entsprechenden Promotion ausgibt.
Code-Anweisungen
- Verwenden Sie eine
for
-Schleife, um durch die Indizes der Listen mit derrange()
-Funktion zu iterieren. - Holen Sie sich bei jeder Iteration den aktuellen
weekday
aus derweekdays
-Liste mit dem Index. - Holen Sie sich die entsprechende Promotion aus der
daily_promotions
-Liste mit demselben Index. - Drucken Sie den Wochentag und die Promotion im angegebenen Format aus.
Ausgabeanforderungen
- Für jede Iteration drucken Sie den Wochentag und die Promotion im Format:
<weekday>: Promotion on <promotion>
.
Hinweis
Achten Sie auf die Anzahl der Elemente in den Listen.
Lösung
Danke für Ihr Feedback!