Die for-Schleife in Python

0 Aktien
0
0
0
0

Einführung

Die for-Schleife in Python ist eine rekursive Funktion. Wenn Sie ein Sequenzobjekt wie eine Liste haben, können Sie die for-Schleife verwenden, um die Elemente der Liste zu durchlaufen. Die Funktionsweise der for-Schleife unterscheidet sich kaum von der in vielen anderen Programmiersprachen. In diesem Artikel werden wir die Python-for-Schleife detailliert untersuchen und lernen, wie man verschiedene Sequenzen, darunter Listen, Tupel und mehr, durchläuft. Außerdem lernen wir, wie man den Ablauf der Schleife mithilfe der Anweisungen `break` und `continue` steuert.

Wann verwendet man eine for-Schleife?

Wenn Sie einen Codeblock mehrmals wiederholen müssen, verwenden Sie stattdessen eine “while-Schleife”, falls Sie nicht wissen, wie oft er wiederholt werden soll.

Syntax der for-Schleife

Die grundlegende Syntax einer for-Schleife in Python sieht in etwa so aus wie die unten aufgeführte.

for itarator_variable in sequence_name:
Statements
. . .
Statements

Python-Syntax für die for-Schleife im Detail

  • Das erste Wort der Anweisung beginnt mit dem Schlüsselwort “for”, was den Beginn der for-Schleife bedeutet.
  • Dann haben wir die Iteratorvariable, die die Sequenz durchläuft und innerhalb der Schleife verwendet werden kann, um verschiedene Funktionen auszuführen.
  • Als nächstes kommt das Schlüsselwort “in” in Python, das der Iteratorvariablen mitteilt, dass sie die Elemente innerhalb der Sequenz durchlaufen soll.
  • Und schließlich haben wir die Sequenzvariable, die eine Liste, ein Tupel oder ein beliebiger anderer Iteratortyp sein kann.
  • Im Abschnitt mit den Schleifenanweisungen können Sie mit der Iteratorvariablen experimentieren und verschiedene Funktionen ausführen.

Gib einzelne Buchstaben einer Zeichenkette mithilfe einer for-Schleife aus.

Ein Python-String ist eine Folge von Zeichen. Wenn Sie in einem Ihrer Programmierprogramme die Zeichen eines Strings einzeln durchlaufen müssen, können Sie hierfür eine for-Schleife verwenden.

So geht's.

word="anaconda"
for letter in word:
print (letter)
a
n
a
c
o
n
d
a

Der Grund, warum diese Schleife funktioniert, ist, dass Python eine "Zeichenkette" als eine Folge von Zeichen betrachtet, anstatt die Zeichenkette als Ganzes zu betrachten.

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

Listen und Tupel sind iterierbare Objekte. Schauen wir uns an, wie wir die Elemente innerhalb dieser Objekte durchlaufen können.

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

Ausgabe:

Apple
Banana
Car
Dolphin

Nun wollen wir uns mit den Elementen eines Tupels befassen.

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

Verschachtelte for-Schleifen in Python

Wenn eine for-Schleife innerhalb einer anderen for-Schleife steht, spricht man von einer verschachtelten for-Schleife. Verschachtelte for-Schleifen haben viele Anwendungsfälle. Betrachten wir die obige Beispielliste. Die for-Schleife gibt die einzelnen Wörter der Liste aus. Was aber, wenn wir stattdessen die einzelnen Zeichen jedes Wortes in der Liste ausgeben möchten?

Hier eignet sich eine verschachtelte for-Schleife am besten. Die erste Schleife (die Elternschleife) durchläuft die Wörter nacheinander. Die zweite Schleife (die Kindschleife) durchläuft die Zeichen in jedem Wort.

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.

For-Schleife mit range()-Funktion

Die Funktion `range()` in Python ist eine der eingebauten Funktionen. Sie eignet sich hervorragend, wenn eine `for`-Schleife eine bestimmte Anzahl von Malen durchlaufen werden soll oder wenn ein Bereich von Objekten zum Ausgeben angegeben werden muss.

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

  • Start Gibt den ganzzahligen Wert an, bei dem die Sequenz beginnt. Wird dieser nicht angegeben, wird der Startwert auf 0 gesetzt.
  • Stoppen ist immer erforderlich und ist eine ganze Zahl, die bis einschließlich zählt.
  • Schritt Bestimmt den Schritt (bzw. die Verringerung bei negativen Zahlen) in der nächsten Iteration. Wird dieser Wert weggelassen, beträgt der Standardschritt 1.

Betrachten wir folgendes Beispiel, in dem ich die Zahlen 1, 2 und 3 ausgeben möchte:

for x in range(3):
print("Printing:", x)
# Output
# Printing: 0
# Printing: 1
# Printing: 2

Die Bereichsfunktion benötigt neben Start und Stopp noch einen weiteren Parameter: die Schrittweite. Sie gibt an, wie viele Zahlen zwischen den einzelnen Zählschritten ü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 Schrittargument verwenden, um rückwärts zu iterieren, müssen dann aber die Start- und Stoppargumente entsprechend anpassen:

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

Hierbei ist 100 der Startwert, 0 der Endwert und -10 der Bereich. Die Schleife beginnt also bei 100 und endet bei 0, wobei der Bereich in jeder Iteration um 10 verringert wird. Dies zeigt sich in der Ausgabe:

Output
100
90
80
70
60
50
40
30
20
10

Bei der Programmierung in Python verwenden for-Schleifen häufig den Sequenztyp range() als Parameter für die Iteration.

Break-Anweisung mit for-Schleife

Die `break`-Anweisung dient dazu, eine `for`-Schleife vorzeitig zu verlassen. Sie wird verwendet, um die Schleife abzubrechen, sobald eine bestimmte Bedingung erfüllt ist. Angenommen, wir haben eine Liste von Zahlen und möchten prüfen, ob eine bestimmte Zahl existiert. Wir können die Liste durchlaufen, und wenn die gesuchte Zahl gefunden wird, können wir die Schleife verlassen, da es nicht nötig ist, die restlichen Elemente zu durchlaufen.

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

continue-Anweisung mit for-Schleife

Wir können `continue`-Anweisungen in einer `for`-Schleife verwenden, um die Ausführung des Schleifenkörpers bei einer bestimmten Bedingung zu überspringen. Angenommen, wir haben eine Liste von Zahlen und möchten die Summe der positiven Zahlen ausgeben. Wir können `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 in Pythons for-Schleife verwenden. Der else-Block wird nur ausgeführt, wenn die for-Schleife nicht mit einer break-Anweisung abgebrochen wird. Angenommen, wir haben eine Funktion, die die Summe von Zahlen genau dann ausgibt, wenn alle Zahlen gerade sind. Falls eine ungerade Zahl vorhanden ist, können wir die for-Schleife mit der break-Anweisung beenden. Wir können die Summe im else-Block ausgeben, sodass sie beim regulären Durchlauf der for-Schleife ausgegeben 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 Datensequenzen können auch als Iterationsparameter in for-Schleifen verwendet werden. Anstatt `range()` zu verwenden, kann man eine Liste definieren und diese durchlaufen. Wir weisen einer Variablen eine Liste zu und iterieren dann über diese Liste:

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

In diesem Fall geben wir jedes Element der Liste aus. Obwohl wir die Variable „shark“ verwendet haben, hätten wir die Variable auch mit jedem anderen gültigen Namen aufrufen und dasselbe Ergebnis erhalten können:

Output
hammerhead
great white
dogfish
frilled
bullhead
requiem

Die obige Ausgabe zeigt, dass die for-Schleife die Liste durchläuft und jedes Element in einer eigenen Zeile ausgibt. Listen und andere sequenzbasierte Datentypen wie Strings und Tupel werden häufig in for-Schleifen verwendet, 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)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Hier haben wir für jedes Element in der Liste der Haie die Platzhalterzeichenfolge «Hai» 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 werden die ganzen Zahlen mit einer leeren Liste initialisiert, aber die for-Schleife füllt die Liste wie folgt:

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

Analog können wir Zeichenketten durchlaufen:

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

Das Durchlaufen von Tupeln erfolgt analog zum Durchlaufen von Listen oder Zeichenketten. Beim Durchlaufen eines Wörterbuchs ist es wichtig, die Schlüssel-Wert-Struktur zu beachten, um sicherzustellen, dass das richtige Element des Wörterbuchs aufgerufen wird. 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

Bei der Verwendung eines Wörterbuchs mit for-Schleifen entspricht die iterierende Variable den Schlüsseln des Wörterbuchs, und dictionary_variable[iterating_variable] entspricht den Werten. Im obigen Fall wurde die iterierende Variable key verwendet, um den Schlüssel darzustellen, und sammy_shark[key], um die Werte darzustellen. Schleifen werden häufig verwendet, um sequentielle Datentypen zu durchlaufen und zu bearbeiten.

Ergebnis

Die for-Schleife in Python ähnelt sehr der in anderen Programmiersprachen. Wir können break- und continue-Anweisungen innerhalb der for-Schleife verwenden, um die Ausführung zu unterbrechen. In Python können wir jedoch optional auch eine andere Schleife blockieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen