Erklärung zur Lektion
Nach dieser Lektion kannst du:
range() für numerische Wiederholungen verwenden und den exklusiven Endwert vorhersagen.enumerate() verwenden, wenn sowohl eine Nummer als auch ein Wert gebraucht werden.Python-for-Schleifen iterieren normalerweise direkt über Werte:
for service in services:
print(service)Das ist oft übersichtlicher, als Indizes manuell zu verwalten. Verwende range(), wenn es bei der Aufgabe tatsächlich um Zahlen, Positionen oder eine feste Anzahl von Wiederholungen geht.
range(start, stop) enthält start, stoppt aber vor stop. Ein drittes Argument legt die Schrittweite fest:
range(2, 9, 2)erzeugt 2, 4, 6 und 8.
Wenn du eine Anzeigenummer und den Wert zusammen brauchst, ist enumerate(values, start=1) meist klarer als range(len(values)).
Schleifen aktualisieren außerdem häufig Summen oder Zähler. Initialisiere den Akkumulator vor der Schleife, aktualisiere ihn im Block und verwende das Endergebnis nach der Schleife.
Die in dieser Lektion vorgegebenen Folgenwerte dienen als Eingaben für die Schleifenübungen. Die vollständigen Listenoperationen werden in der Einheit zu Datenstrukturen behandelt.
Die Schleifenvariable erhält nacheinander jeden einzelnen Wert.
regions = ["us", "eu", "apac"]
for region in regions:
print(f"Region: {region}")Ausgabe:
Region: us
Region: eu
Region: apacEin Index ist nicht nötig, weil es bei der Aufgabe um die Regionswerte geht.
Der Endwert ist nicht enthalten.
for attempt in range(1, 4):
print(f"Attempt {attempt}")Ausgabe:
Attempt 1
Attempt 2
Attempt 3Die Schleife stoppt vor 4.
Das dritte Argument steuert den Abstand zwischen den erzeugten Werten.
for port in range(9000, 9005, 2):
print(port)Ausgabe:
9000
9002
9004Die Folge rückt jedes Mal um zwei vor.
enumerate() nummerierenenumerate() liefert dir sowohl einen Zähler als auch den aktuellen Wert.
workers = ["api", "queue", "mailer"]
for number, worker in enumerate(workers, start=1):
print(f"{number}. {worker}")Ausgabe:
1. api
2. queue
3. mailerDie angezeigte Nummerierung beginnt bei eins, ohne manuelle Indexrechnung.
Initialisiere den Akkumulator vor der Schleife.
durations = [12, 18, 15]
total = 0
for duration in durations:
total += duration
print(f"Total: {total}")Ausgabe:
Total: 45Jede Iteration addiert eine Dauer zur laufenden Summe.
| Bedarf | Bevorzugte Schleife |
|---|---|
| Mit jedem Wert arbeiten | for item in items |
| Über Zahlen wiederholen | for number in range(...) |
| Jeden Wert nummerieren | for number, item in enumerate(...) |
| Eine Summe bilden | Vor der Schleife initialisieren, darin aktualisieren |
range() enthalten ist.