Python for Schleife

Die for-Schleife in Python ist eine iterative Funktion. Wenn Sie ein Sequenzobjekt wie eine Liste haben, können Sie die for-Schleife verwenden, um über die Elemente innerhalb der Liste zu iterieren.

Die Funktionalität der for-Schleife unterscheidet sich nicht sehr von dem, was Sie in vielen anderen Programmiersprachen sehen.

In diesem Artikel werden wir die Python for-Schleife im Detail erkunden und lernen, über verschiedene Sequenzen wie Listen, Tupel und mehr zu iterieren. Darüber hinaus werden wir lernen, den Ablauf der Schleife mit den break- und continue-Anweisungen zu steuern.

Wann man die for-Schleife verwenden sollte

Jedes Mal, wenn Sie einen Block Code eine feste Anzahl von Malen wiederholen müssen. Wenn Sie die Anzahl der Wiederholungen nicht kennen, verwenden Sie stattdessen eine „while-Schleife“.

Syntax der for-Schleife in Python

Die grundlegende Syntax der for-Schleife in Python sieht in etwa wie die unten genannte aus.

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

Syntax des Python for-Loops im Detail

  • Das erste Wort der Anweisung beginnt mit dem Schlüsselwort „for“, das den Beginn der for-Schleife kennzeichnet.
  • Dann haben wir die Iterator-Variable, die über die Sequenz iteriert und innerhalb der Schleife verwendet werden kann, um verschiedene Funktionen auszuführen.
  • Als Nächstes kommt das Schlüsselwort „in“ in Python, das der Iterator-Variable sagt, dass sie für Elemente innerhalb der Sequenz durchlaufen soll.
  • Und schließlich haben wir die Sequenzvariable, die entweder eine Liste, ein Tupel oder eine andere Art von Iterator sein kann.
  • Der Teil der Anweisungen der Schleife ist der Bereich, in dem Sie mit der Iterator-Variable spielen und verschiedene Funktionen ausführen können.

Python-Zeichenfolge ist eine Sequenz von Zeichen. Wenn Sie in einer Ihrer Programmieranwendungen die Zeichen einer Zeichenfolge einzeln durchgehen müssen, können Sie hier die for-Schleife verwenden.

So würde das für Sie funktionieren.

word="anaconda"
for letter in word:
	print (letter)

Ausgabe:

a
n
a
c
o
n
d
a

Der Grund, warum diese Schleife funktioniert, liegt daran, dass Python eine „Zeichenkette“ als eine Sequenz von Zeichen betrachtet, anstatt die Zeichenkette als Ganzes zu betrachten.

Verwendung der for-Schleife zur Iteration über eine Python-Liste oder ein Tupel

Listen und Tupel sind iterable Objekte. Schauen wir uns nun an, wie wir über die Elemente innerhalb dieser Objekte iterieren können.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

Ausgabe:

Apple
Banana
Car
Dolphin

Lassen Sie uns nun vorangehen und daran arbeiten, über die Elemente eines Tupels zu iterieren.

nums = (1, 2, 3, 4)

sum_nums = 0

for num in nums:
    sum_nums = sum_nums + num

print(f'Sum of numbers is {sum_nums}')

# Ausgabe
# Summe der Zahlen ist 10

Verschachtelte Python for-Schleifen

Wenn wir eine for-Schleife innerhalb einer anderen for-Schleife haben, wird dies als verschachtelte for-Schleife bezeichnet. Es gibt mehrere Anwendungen einer verschachtelten for-Schleife.

Betrachten Sie das obige Listenbeispiel. Die for-Schleife gibt einzelne Wörter aus der Liste aus. Aber was ist, wenn wir stattdessen die einzelnen Zeichen jedes Worts innerhalb der Liste ausgeben möchten?

Hier funktioniert eine verschachtelte for-Schleife besser. Die erste Schleife (äußere Schleife) durchläuft die Wörter nacheinander. Die zweite Schleife (innere Schleife) durchläuft die Zeichen jedes Worts.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        #Diese Schleife holt ein Wort aus der Liste
        print ("The following lines will print each letters of "+word)
        for letter in word:
                #Diese Schleife holt einen Buchstaben für das Wort
                print (letter)
        print("") #Dieser Ausdruck wird verwendet, um eine Leerzeile auszugeben

Ausgabe

A nested loop is structurally similar to nested if statements

Python for-Schleife mit range() Funktion

Python range ist eine der eingebauten Funktionen. Wenn Sie möchten, dass die for-Schleife eine bestimmte Anzahl von Malen durchläuft, oder wenn Sie einen Bereich von Objekten angeben müssen, die ausgegeben werden sollen, funktioniert die range-Funktion wirklich gut.

Bei der Arbeit mit range() können Sie zwischen 1 und 3 ganzzahlige Argumente übergeben:

  • start gibt den ganzzahligen Wert an, mit dem die Sequenz beginnt. Wenn dies nicht enthalten ist, beginnt start bei 0
  • stop wird immer benötigt und ist die Ganzzahl, bis zu der gezählt wird, aber nicht eingeschlossen
  • step legt fest, wie viel bei der nächsten Iteration erhöht (oder bei negativen Zahlen verringert) werden soll. Wenn dies ausgelassen wird, wird step standardmäßig auf 1 gesetzt.

Betrachten Sie das folgende Beispiel, in dem ich die Zahlen 1, 2 und 3 ausgeben möchte:

for x in range(3):
    print("Printing:", x)
	
# Ausgabe

# Drucken: 0
# Drucken: 1
# Drucken: 2

Die Range-Funktion akzeptiert neben dem Start und dem Ende auch einen anderen Parameter. Dies ist der Step-Parameter. Er gibt der Range-Funktion an, wie viele Zahlen zwischen jedem Zählen übersprungen werden sollen.

Im folgenden Beispiel habe ich die Zahl 3 als Schritt verwendet, und Sie können sehen, dass die Ausgabezahlen die vorherige Zahl + 3 sind.

for n in range(1, 10, 3):
    print("Printing with step:", n)
	
# Ausgabe

# Drucken mit Schritt: 1
# Drucken mit Schritt: 4
# Drucken mit Schritt: 7

Wir können auch einen negativen Wert für unser step-Argument verwenden, um rückwärts zu iterieren, aber wir müssen unsere start– und stop-Argumente entsprechend anpassen:

for i in range(100,0,-10):
   print(i)

Hier ist 100 der start-Wert, 0 ist der stop-Wert, und -10 ist die Reichweite, so dass die Schleife bei 100 beginnt und bei 0 endet und sich bei jeder Iteration um 10 verringert. Dies geschieht in der Ausgabe:

Output
100 90 80 70 60 50 40 30 20 10

Beim Programmieren in Python verwenden for-Schleifen oft den Sequenztyp range() als ihre Parameter für die Iteration.

Break-Anweisung mit for-Schleife

Die break-Anweisung wird verwendet, um die for-Schleife vorzeitig zu beenden. Sie wird verwendet, um die for-Schleife zu unterbrechen, wenn eine bestimmte Bedingung erfüllt ist.

Angenommen, wir haben eine Liste von Zahlen, und wir möchten überprüfen, ob eine Zahl vorhanden ist oder nicht. Wir können über die Liste der Zahlen iterieren und wenn die Zahl gefunden wird, aus der Schleife ausbrechen, weil wir nicht über die verbleibenden Elemente iterieren müssen.

In diesem Fall verwenden wir die Python if else-Bedingung zusammen mit unserer for-Schleife.

nums = [1, 2, 3, 4, 5, 6]

n = 2

found = False
for num in nums:
    if n == num:
        found = True
        break

print(f'List contains {n}: {found}')

# Ausgabe
# Liste enthält 2: True

Die continue-Anweisung mit for-Schleife

Wir können continue-Anweisungen innerhalb einer for-Schleife verwenden, um die Ausführung des Körper der for-Schleife für eine bestimmte Bedingung zu überspringen.

Lassen Sie uns sagen, wir haben eine Liste von Zahlen, und wir möchten die Summe der positiven Zahlen ausdrucken. Wir können die continue-Anweisungen verwenden, um die for-Schleife für negative Zahlen zu überspringen.

nums = [1, 2, -3, 4, -5, 6]

sum_positives = 0

for num in nums:
    if num < 0:
        continue
    sum_positives += num

print(f'Sum of Positive Numbers: {sum_positives}')

Python for-Schleife mit einem else-Block

Wir können den else-Block mit einer Python for-Schleife verwenden. Der else-Block wird nur ausgeführt, wenn die for-Schleife nicht durch eine break-Anweisung beendet wird.

Lassen Sie uns sagen, wir haben eine Funktion, um die Summe der Zahlen auszudrucken, wenn und nur wenn alle Zahlen gerade sind.

Wir können die break-Anweisung verwenden, um die for-Schleife zu beenden, wenn eine ungerade Zahl vorhanden ist. Wir können die Summe im else-Teil ausdrucken, damit sie nur gedruckt wird, wenn die for-Schleife normal ausgeführt wird.

def print_sum_even_nums(even_nums):
    total = 0

    for x in even_nums:
        if x % 2 != 0:
            break

        total += x
    else:
        print("For loop executed normally")
        print(f'Sum of numbers {total}')


# dies wird die Summe drucken
print_sum_even_nums([2, 4, 6, 8])

# dies wird die Summe nicht drucken, wegen einer ungeraden Zahl in der Sequenz
print_sum_even_nums([2, 4, 5, 8])

# Ausgabe

# For-Schleife normal ausgeführt
# Summe der Zahlen 20

For-Schleifen mit sequentiellen Datentypen

Listen und andere Datensequenztypen können auch als Iterationsparameter in for-Schleifen verwendet werden. Anstatt durch einen range() zu iterieren, können Sie eine Liste definieren und durch diese Liste iterieren.

Wir weisen einer Variablen eine Liste zu und iterieren dann durch die Liste:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for shark in sharks:
   print(shark)

In diesem Fall geben wir jedes Element in der Liste aus. Obwohl wir die Variable shark verwendet haben, hätten wir die Variable auch anders benennen können, und wir würden dieselbe Ausgabe erhalten:

Output
hammerhead great white dogfish frilled bullhead requiem

Die obige Ausgabe zeigt, dass die for-Schleife durch die Liste iteriert ist und jedes Element der Liste pro Zeile ausgedruckt hat.

Listen und andere sequenzbasierte Datentypen wie Zeichenketten und Tupel werden häufig mit Schleifen verwendet, da sie iterierbar sind. Sie können diese Datentypen auch mit range() kombinieren, um Elemente zu einer Liste hinzuzufügen, zum Beispiel:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']

for item in range(len(sharks)):
   sharks.append('shark')

print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Hier haben wir für jedes Element der Länge der Liste sharks einen Platzhalterstring von 'shark' hinzugefügt.

Sie können auch eine for-Schleife verwenden, um eine Liste von Grund auf zu erstellen:

integers = []

for i in range(10):
   integers.append(i)

print(integers)

In diesem Beispiel wird die Liste integers leer initialisiert, aber die for-Schleife füllt die Liste wie folgt:

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Ähnlich können wir durch Zeichenketten iterieren:

sammy = 'Sammy'

for letter in sammy:
   print(letter)
Output
S a m m y

Das Durchlaufen von Tupeln erfolgt im gleichen Format wie das Durchlaufen von Listen oder Zeichenketten oben.

Beim Durchlaufen eines Wörterbuchs ist es wichtig, sich die Schlüssel-Wert-Struktur vor Augen zu halten, um sicherzustellen, dass Sie das richtige Element des Wörterbuchs aufrufen. Hier ist ein Beispiel, das sowohl den Schlüssel als auch den Wert aufruft:

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}

for key in sammy_shark:
   print(key + ': ' + sammy_shark[key])
Output
name: Sammy animal: shark location: ocean color: blue

Beim Verwenden von Wörterbüchern mit for-Schleifen entspricht die Iterationsvariable den Schlüsseln des Wörterbuchs, und dictionary_variable[iterating_variable] entspricht den Werten. Im obigen Fall wurde die Iterationsvariable key verwendet, um für den Schlüssel zu stehen, und sammy_shark[key] wurde verwendet, um für die Werte zu stehen.

Schleifen werden oft verwendet, um sequenzielle Datentypen zu durchlaufen und zu manipulieren.

Fazit

Die for-Schleife in Python ist sehr ähnlich zu anderen Programmiersprachen. Wir können break- und continue-Anweisungen mit der for-Schleife verwenden, um die Ausführung zu ändern. In Python können wir jedoch optional auch einen else-Block in der for-Schleife haben.

I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.

Von hier aus können Sie Ihre Kenntnisse über Schleifen vertiefen, indem Sie Tutorials zu while-Schleifen und break-, continue- und pass-Anweisungen lesen.

Um mit for-Schleifen in Projekten zu arbeiten, folgen Sie den folgenden Anleitungen:

Source:
https://www.digitalocean.com/community/tutorials/how-to-construct-for-loops-in-python-3