Website-Suche

Python for Schleife


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

Die Funktionalität der for-Schleife unterscheidet sich nicht wesentlich von dem, was man in vielen anderen Programmiersprachen sieht.

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

Wann man eine for-Schleife verwenden sollte

Immer wenn Sie einen Codeblock eine feste Anzahl von Malen wiederholen müssen. Wenn Sie die Anzahl der Wiederholungen nicht wissen, verwenden Sie stattdessen eine "while loop"-Anweisung.

Für Schleife Python Syntax

Die grundlegende Syntax der for-Schleife in Python sieht ähnlich aus wie die unten aufgeführte.

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

Python for Schleifen Syntax im Detail

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

Drucken Sie einzelne Buchstaben eines Strings mit einer for-Schleife aus.

Ein Python-String ist eine Folge von Zeichen. Wenn Sie in Ihren Programmierszenarien die Zeichen eines Strings 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, ist, dass Python eine "Zeichenkette" als eine Sequenz von Zeichen betrachtet, anstatt die Zeichenkette als Ganzes zu betrachten.

Die Verwendung der for-Schleife zum Iterieren über eine Python-Liste oder ein Tuple

Listen und Tupel sind iterierbare Objekte. Sehen wir uns jetzt 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

Jetzt wollen wir weitermachen und die Elemente eines Tupels hier durchlaufen.

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}')

Output
Sum of numbers is 10

Verschachtelung von Python-Schleifen

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

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

Hier ist der Ort, an dem eine verschachtelte Schleife besser funktioniert. Die erste Schleife (Elternschleife) geht die Wörter nacheinander durch. Die zweite Schleife (Kinderschleife) durchläuft die Zeichen jedes der Wörter.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        #This loop is fetching word from the list
        print ("The following lines will print each letters of "+word)
        for letter in word:
                #This loop is fetching letter for the word
                print (letter)
        print("") #This print is used to print a blank line

Ausgabe

Eine verschachtelte Schleife ist strukturell ähnlich wie verschachtelte if-Anweisungen.

Python for Schleife mit range() Funktion

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

Wenn Sie mit range() arbeiten, können Sie zwischen 1 und 3 ganzzahligen Argumenten übergeben:

  • start gibt den ganzzahligen Wert an, bei dem die Sequenz beginnt. Wenn dies nicht angegeben ist, beginnt start bei 0.
  • stop ist immer erforderlich und ist die ganze Zahl, bis zu der gezählt wird, aber nicht einschließlich.
  • step legt fest, um wie viel die nächste Iteration erhöht (oder im Falle negativer Zahlen verringert) werden soll. Wenn dies weggelassen wird, beträgt der Standardwert für step 1.

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

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

Printing: 0
Printing: 1
Printing: 2

Die range-Funktion nimmt neben dem Start- und dem Stoppparameter auch einen weiteren Parameter. Dies ist der Schrittparameter. Er sagt der range-Funktion, wie viele Zahlen zwischen jeder Zählung ü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)
	
Output

Printing with step: 1
Printing with step: 4
Printing with step: 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 Stopp Wert, und -10 ist der Bereich, sodass die Schleife bei 100 beginnt und bei 0 endet, wobei sie in jeder Iteration um 10 verringert wird. Dies geschieht im Output:

100
90
80
70
60
50
40
30
20
10

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

Break-Anweisung mit einer for-Schleife

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

Nehmen wir an, wir haben eine Liste von Zahlen und 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, die Schleife abbrechen, da wir nicht weiter ü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}')

Output
List contains 2: True

Die continue-Anweisung mit der for-Schleife

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

Angenommen, wir haben eine Liste von Zahlen und möchten die Summe der positiven Zahlen ausgeben. 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 einen 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.

Nehmen wir an, wir haben eine Funktion, die die Summe der Zahlen ausgibt, 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 ausgeben, damit sie nur ausgegeben 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}')


this will print the sum
print_sum_even_nums([2, 4, 6, 8])

this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])

Output

For loop executed normally
Sum of numbers 20

Für Schleifen mit sequenziellen 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 werden eine Liste einer Variablen zuweisen und dann durch die Liste iterieren:

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 haifisch verwendet haben, hätten wir die Variable auch einen anderen gültigen Variablennamen nennen können und wir würden dasselbe Ergebnis erhalten:

hammerhead
great white
dogfish
frilled
bullhead
requiem

Die oben stehende Ausgabe zeigt, dass die for-Schleife durch die Liste iteriert hat und jedes Element der Liste pro Zeile ausgegeben wurde.

Listen und andere sequenzbasierte Datentypen wie Strings und Tupel sind häufig in Schleifen zu verwenden, da sie iterierbar sind. Sie können diese Datentypen mit range() kombinieren, um beispielsweise Elemente zu einer Liste hinzuzufügen:

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

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

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

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

Sie können auch eine for Schleife verwenden, um eine Liste von Grund auf neu 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 folgendermaßen:

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

Ähnlich können wir durch Strings iterieren:

sammy = 'Sammy'

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

Das Durchlaufen von Tupeln erfolgt im selben Format wie das Durchlaufen von Listen oder Strings oben.

Beim Durchlaufen eines Wörterbuchs ist es wichtig, die Schlüssel: Wert-Struktur im Hinterkopf zu behalten, 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])
name: Sammy
animal: shark
location: ocean
color: blue

Bei der Verwendung von Dictionaries mit for-Schleifen entspricht die iterierende Variable den Schlüsseln des Dictionaries, und dictionary_variable[iterating_variable] entspricht den Werten. Im obigen Fall wurde die iterierende Variable 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 häufig verwendet, um sequentielle Datentypen zu durchlaufen und zu bearbeiten.

Schlussfolgerung

Die for-Schleife in Python ist sehr ähnlich wie in anderen Programmiersprachen. Wir können Break- und Continue-Anweisungen in der for-Schleife verwenden, um die Ausführung zu verändern. In Python können wir jedoch auch einen optionalen Else-Block in der for-Schleife haben.

Ich hoffe, dass Sie einige interessante Ideen aus dem obigen Tutorial gewonnen haben. Wenn Sie Fragen haben, lassen Sie es uns in den Kommentaren unten wissen.

Von hier aus können Sie weiterhin über Schleifen lernen, indem Sie Tutorials über while-Schleifen und break-, continue- und pass-Anweisungen lesen.

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

  • So erstellen Sie einen Twitterbot mit Python 3 und der Tweepy-Bibliothek
  • Wie man mit Sprachdaten in Python 3 unter Verwendung des Natural Language Toolkit NLTK arbeitet
  • Wie man die Wortfrequenz mit matplotlib und Python 3 grafisch darstellt