In diesem Artikel lernen Sie, wie Sie mit den verschiedenen Varianten der for-Schleife über eine Folge von Elementen iterieren können.

Was ist eine for loop in Python?

Die for-Schleife in Python wird verwendet, um über eine Sequenz (Liste, Tupel, String) oder andere iterierbare Objekte zu iterieren. Das Iterieren über eine Sequenz wird als Traversal bezeichnet.

 

Syntax von for-Schleife

 

for val in sequence:
    Körper von for

 

Hier, val ist die Variable, die bei jeder Iteration den Wert des Elements innerhalb der Sequenz annimmt.

Die Schleife wird fortgesetzt, bis das letzte Element in der Sequenz erreicht ist. Der Körper der for-Schleife wird durch Einrückung vom restlichen Code getrennt.

 

Flussdiagramm der for-Schleife

 

Flowchart of for Loop in Python
Flussdiagramm der for-Schleife in Python

 

Beispiel: Python for-Schleife

 

# Programm zur Ermittlung der Summe aller in einer Liste gespeicherten Zahlen

# Liste der Nummern
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]

# Variable zum Speichern der Summe
sum = 0

# über die Liste iterieren
for val in numbers:
    sum = sum+val

print("Die Summe ist", sum)

 

 

Wenn Sie das Programm ausführen, wird die Ausgabe sein:

Die Summe ist 48

 


 

 

The range() Funktion

 

Wir können eine Folge von Zahlen erzeugen, indem wir range() Funktion. range(10) erzeugt Zahlen von 0 bis 9 (10 Zahlen).

 

Wir können auch die Start-, Stopp- und Schrittgröße definieren als range(start, stop,step_size). step_size Der Standardwert ist 1, wenn nicht angegeben.

Die range Objekt ist in gewissem Sinne “faul”, weil es nicht jede Zahl, die es “enthält”, generiert, wenn wir es erstellen. Er ist jedoch kein Iterator, da er die in, len and __getitem__ Operationen.

Die range Objekt ist in gewissem Sinne “faul”, weil es nicht jede Zahl, die es “enthält”, generiert, wenn wir es erstellen. Es ist jedoch kein Iterator, da es unterstützt in, len and __getitem__ operationen.

Diese Funktion speichert nicht alle Werte im Speicher; es wäre ineffizient. So merkt es sich Start, Stopp, Schrittweite und generiert unterwegs die nächste Zahl.

Um diese Funktion zu zwingen, alle Elemente auszugeben, können wir die Funktion list().

Das folgende Beispiel soll dies verdeutlichen.

print(range(10))

print(list(range(10)))

print(list(range(2, 8)))

print(list(range(2, 20, 3)))

 

Output

range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]

 

Wir können die nutzen range()Funktion in for
Schleifen, um eine Zahlenfolge zu durchlaufen. Es kann kombiniert werden mit dem len()Funktion zum Durchlaufen einer Sequenz mit Indizierung. Hier ist ein Beispiel.

# Programm zum Durchlaufen einer Liste mit Indizierung

genre = ['pop', 'rock', 'jazz']

# über die Liste mit Hilfe des Index iterieren
for i in range(len(genre)):
    print("Ich mag", genre[i])

 

Output

Ich mag pop
Ich mag rock
Ich mag jazz

 


 

for-Schleife mit else

 

Ein for schleife kann eine optionale haben else auch blockieren. Das elsepart wird ausgeführt, wenn die Elemente in der für Schleife verwendeten Sequenz erschöpft sind.

 

Das break Schlüsselwort kann verwendet werden, um eine for-Schleife zu stoppen. In solchen Fällen wird der else-Teil ignoriert.

Daher wird der else-Teil einer for-Schleife ausgeführt, wenn keine Unterbrechung auftritt.

Hier ist ein Beispiel, um dies zu veranschaulichen.

digits = [11, 12, 15]

for i in digits:
    print(i)
else:
    print("Keine Artikel übrig.")

 

Wenn Sie das Programm ausführen, lautet die Ausgabe:

11
12
15
Keine Artikel übrig.

 

Hier druckt die for-Schleife Elemente der Liste, bis die Schleife erschöpft ist. Wenn die for-Schleife erschöpft ist, führt sie den Codeblock im else und druckt Keine Artikel übrig.

 

Diese for...elseanweisung kann mit dem verwendet werden break Stichwort zum Ausführen der else nur blockieren, wenn die breakSchlüsselwort wurde nicht ausgeführt. Nehmen wir ein Beispiel:

 

# Programm zum Anzeigen von Schülernoten aus der Aufzeichnung
student_name = 'Soyuj'

marks = {'James': 90, 'Jules': 55, 'Arthur': 77}

for student in marks:
    if student == student_name:
        print(marks[student])
        break
else:
    print('Kein Eintrag mit diesem Namen gefunden.')

 

Output

Kein Eintrag mit diesem Namen gefunden.