Schleifen in Python verstehen

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einleitung

In diesem Labor erhalten Sie ein grundlegendes Verständnis von Schleifen in Python, unverzichtbaren Werkzeugen für wiederkehrende Aufgaben. Wir beginnen mit der Untersuchung von for-Schleifen und dem Konzept der Iteration, wobei wir lernen, wie man Sequenzen wie Listen und Zeichenketten durchläuft.

Anschließend erfahren Sie, wie Sie die range()-Funktion effektiv mit for-Schleifen verwenden, um Zahlenfolgen zu generieren. Abschließend führen wir while-Schleifen ein und lernen, wie Sie den Ablauf von for- und while-Schleifen mithilfe der break- und continue-Anweisungen steuern können.

Einführung von For-Schleifen und Iteration

In diesem Schritt lernen wir die for-Schleife in Python kennen, die verwendet wird, um über eine Sequenz (wie eine Liste, ein Tupel, ein Dictionary, ein Set oder eine Zeichenkette) zu iterieren. Iterieren bedeutet, jedes Element in der Sequenz einzeln durchzugehen.

Beginnen wir mit der Erstellung eines einfachen Python-Skripts, das eine for-Schleife verwendet, um jedes Element einer Liste auszugeben.

Öffnen Sie das integrierte Terminal in der WebIDE, indem Sie auf Terminal -> New Terminal klicken. Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

Erstellen Sie nun eine neue Datei namens for_loop_example.py im Verzeichnis ~/project über den Dateiexplorer in der WebIDE. Öffnen Sie die Datei und fügen Sie den folgenden Code hinzu:

## Define a list of numbers
numbers = [1, 2, 3, 4, 5]

## Iterate over the list using a for loop
for number in numbers:
  ## Print each number
  print(number)

Speichern Sie die Datei, indem Sie Strg + S drücken oder auf File -> Save klicken.

Führen Sie nun das Skript über das Terminal mit dem Befehl python aus:

python for_loop_example.py

Sie sollten die folgende Ausgabe sehen:

1
2
3
4
5

In diesem Beispiel iteriert die for-Schleife durch die Liste numbers. In jeder Iteration wird das aktuelle Element aus der Liste der Variablen number zugewiesen, und dann wird die Anweisung print(number) ausgeführt.

Der Variablenname number ist willkürlich; Sie können jeden gültigen Variablennamen verwenden. Zum Beispiel könnten Sie item oder element verwenden.

Versuchen wir ein weiteres Beispiel, diesmal mit Iteration über eine Zeichenkette. Erstellen Sie eine neue Datei namens string_loop.py im Verzeichnis ~/project und fügen Sie den folgenden Code hinzu:

## Define a string
message = "Hello"

## Iterate over the string
for char in message:
  ## Print each character
  print(char)

Speichern Sie die Datei und führen Sie sie aus:

python string_loop.py

Die Ausgabe wird sein:

H
e
l
l
o

Wie Sie sehen können, iteriert die for-Schleife durch jedes Zeichen der Zeichenkette.

Verwendung der range()-Funktion mit For-Schleifen

In diesem Schritt werden wir die range()-Funktion untersuchen, die häufig mit for-Schleifen verwendet wird, um Zahlenfolgen zu generieren. Dies ist besonders nützlich, wenn Sie eine Aktion eine bestimmte Anzahl von Malen wiederholen oder über eine Sequenz von Indizes iterieren müssen.

Die range()-Funktion kann auf verschiedene Arten verwendet werden:

  • range(stop): Generiert eine Zahlenfolge von 0 bis (aber nicht einschließlich) stop.
  • range(start, stop): Generiert eine Zahlenfolge von start bis (aber nicht einschließlich) stop.
  • range(start, stop, step): Generiert eine Zahlenfolge von start bis (aber nicht einschließlich) stop, mit einer Schrittweite von step.

Schauen wir uns an, wie range() mit einer for-Schleife verwendet wird. Erstellen Sie eine neue Datei namens range_example.py im Verzeichnis ~/project und fügen Sie den folgenden Code hinzu:

## Use range(stop) to print numbers from 0 to 4
print("Numbers from 0 to 4:")
for i in range(5):
  print(i)

print("\n" + "="*20 + "\n") ## Print a separator

## Use range(start, stop) to print numbers from 2 to 5
print("Numbers from 2 to 5:")
for i in range(2, 6):
  print(i)

print("\n" + "="*20 + "\n") ## Print a separator

## Use range(start, stop, step) to print odd numbers from 1 to 9
print("Odd numbers from 1 to 9:")
for i in range(1, 10, 2):
  print(i)

Speichern Sie die Datei und führen Sie sie im Terminal aus:

python range_example.py

Sie sollten die folgende Ausgabe sehen:

Numbers from 0 to 4:
0
1
2
3
4

====================

Numbers from 2 to 5:
2
3
4
5

====================

Odd numbers from 1 to 9:
1
3
5
7
9

Beachten Sie, dass range() den stop-Wert "exklusiv" behandelt, d. h. die Sequenz geht bis zur Zahl stop, schließt diese aber nicht ein. Dies ähnelt der Funktionsweise von Slicing in Python.

Die Verwendung von range() ist eine prägnante Methode, um Aktionen eine feste Anzahl von Malen auszuführen. Um beispielsweise fünfmal "Hello" auszugeben, können Sie Folgendes verwenden:

## Print "Hello" five times
for _ in range(5):
  print("Hello")

In diesem Fall verwenden wir _ als Schleifenvariable, da wir den Wert des Schleifenzählers innerhalb der Schleife nicht tatsächlich verwenden müssen.

Einführung von While-Schleifen

In diesem Schritt lernen wir die while-Schleife kennen, eine weitere Möglichkeit, wiederkehrende Aufgaben in Python auszuführen. Im Gegensatz zur for-Schleife, die über eine Sequenz oder eine feste Anzahl von Malen iteriert, wird die while-Schleife so lange ausgeführt, wie eine bestimmte Bedingung wahr ist.

Die grundlegende Syntax einer while-Schleife ist:

while condition:
  ## Code, der ausgeführt wird, solange die Bedingung wahr ist
  ## Denken Sie daran, Variablen, die in der Bedingung vorkommen, zu aktualisieren,
  ## um eine Endlosschleife zu vermeiden!

Erstellen wir ein Skript zur Demonstration einer while-Schleife. Wir werden sie verwenden, um Zahlen von 1 bis 5 auszugeben.

Erstellen Sie eine neue Datei namens while_loop_example.py im Verzeichnis ~/project und fügen Sie den folgenden Code hinzu:

## Initialize a variable
count = 1

## Loop while count is less than or equal to 5
while count <= 5:
  ## Print the current value of count
  print(count)
  ## Increment count to move towards the loop termination
  count = count + 1 ## or count += 1

Speichern Sie die Datei und führen Sie sie im Terminal aus:

python while_loop_example.py

Sie sollten die folgende Ausgabe sehen:

1
2
3
4
5

So funktioniert diese while-Schleife:

  1. Wir initialisieren eine Variable count mit dem Wert 1.
  2. Die while-Schleife prüft die Bedingung count <= 5. Anfangs ist diese wahr (1 <= 5).
  3. Da die Bedingung wahr ist, wird der Code innerhalb der Schleife ausgeführt: print(count) gibt 1 aus, und count wird auf 2 erhöht.
  4. Die Schleife kehrt zur Bedingungsprüfung zurück. Jetzt ist count 2, und 2 <= 5 ist immer noch wahr.
  5. Die Schleife wird weiter ausgeführt, gibt den Wert von count aus und erhöht ihn in jeder Iteration.
  6. Wenn count den Wert 6 erreicht, wird die Bedingung count <= 5 falsch.
  7. Die Schleife wird beendet, und das Programm wird nach der Schleife fortgesetzt.

Es ist entscheidend sicherzustellen, dass die Bedingung in einer while-Schleife irgendwann falsch wird. Wenn die Bedingung immer wahr bleibt, erzeugen Sie eine Endlosschleife, und Ihr Programm läuft unendlich weiter (oder bis Sie es manuell stoppen, normalerweise durch Drücken von Strg + C im Terminal).

Wenn wir beispielsweise vergessen hätten, count im vorherigen Beispiel zu erhöhen, wäre die Bedingung count <= 5 immer wahr, was zu einer Endlosschleife führen würde, die wiederholt 1 ausgibt.

Obwohl sowohl for- als auch while-Schleifen für Wiederholungen verwendet werden, werden for-Schleifen typischerweise verwendet, wenn die Anzahl der Iterationen im Voraus bekannt ist (z. B. beim Iterieren über eine Liste oder bei Verwendung von range()), während while-Schleifen verwendet werden, wenn die Anzahl der Iterationen unbekannt ist und von einer Bedingung abhängt.

Steuerung des Schleifenflusses mit break und continue

In diesem Schritt lernen wir, wie die Anweisungen break und continue verwendet werden, um den normalen Fluss von Schleifen zu ändern. Diese Anweisungen bieten mehr Kontrolle darüber, wann eine Schleife beendet oder eine Iteration übersprungen werden soll.

Die break-Anweisung wird verwendet, um eine Schleife vorzeitig zu beenden. Wenn break innerhalb einer Schleife angetroffen wird, wird die Schleife sofort beendet, und die Programmausführung wird mit der ersten Anweisung nach der Schleife fortgesetzt.

Schauen wir uns ein Beispiel mit einer for-Schleife an. Erstellen Sie eine neue Datei namens break_example.py im Verzeichnis ~/project und fügen Sie den folgenden Code hinzu:

## Iterate through numbers from 0 to 9
for i in range(10):
  ## Check if i is equal to 5
  if i == 5:
    ## If i is 5, break out of the loop
    print(f"Breaking loop at i = {i}")
    break
  ## Print the current value of i (this line is skipped when i is 5)
  print(i)

print("Loop finished.")

Speichern Sie die Datei und führen Sie sie aus:

python break_example.py

Die Ausgabe wird sein:

0
1
2
3
4
Breaking loop at i = 5
Loop finished.

Wie Sie sehen können, begann die Schleife mit der Iteration ab 0. Als i den Wert 5 erreichte, wurde die if-Bedingung i == 5 wahr, die Anweisung print(f"Breaking loop at i = {i}") wurde ausgeführt, und dann beendete break die Schleife. Die Zahlen 5 bis 9 wurden von der Schleife nicht ausgegeben.

Die continue-Anweisung wird verwendet, um den Rest der aktuellen Iteration einer Schleife zu überspringen und zur nächsten Iteration zu gelangen. Wenn continue angetroffen wird, wird der verbleibende Code im Schleifenkörper für die aktuelle Iteration übersprungen, und die Schleife fährt mit der nächsten Iteration fort (bei while-Schleifen wird die Schleifenbedingung erneut geprüft, bei for-Schleifen wird zum nächsten Element übergegangen).

Schauen wir uns ein Beispiel mit einer while-Schleife an. Erstellen Sie eine neue Datei namens continue_example.py im Verzeichnis ~/project und fügen Sie den folgenden Code hinzu:

## Initialize a variable
count = 0

## Loop while count is less than 10
while count < 10:
  ## Increment count at the beginning of the loop
  count += 1
  ## Check if count is equal to 5
  if count == 5:
    ## If count is 5, skip the rest of this iteration
    print(f"Skipping iteration at count = {count}")
    continue
  ## Print the current value of count (this line is skipped when count is 5)
  print(count)

print("Loop finished.")

Speichern Sie die Datei und führen Sie sie aus:

python continue_example.py

Die Ausgabe wird sein:

1
2
3
4
Skipping iteration at count = 5
6
7
8
9
10
Loop finished.

In diesem Beispiel iteriert die Schleife von 1 bis 10. Wenn count den Wert 5 hat, ist die if-Bedingung count == 5 wahr, die Anweisung print(f"Skipping iteration at count = {count}") wird ausgeführt, und dann bewirkt continue, dass die Schleife die Anweisung print(count) für diese Iteration überspringt und direkt zur nächsten Iteration übergeht (bei der count den Wert 6 annimmt).

Sowohl break als auch continue können sowohl in for- als auch in while-Schleifen verwendet werden, um das Verhalten der Schleife basierend auf spezifischen Bedingungen fein abzustimmen.

Zusammenfassung

In diesem Lab haben wir uns mit Schleifen in Python beschäftigt, beginnend mit der for-Schleife. Wir haben untersucht, wie for-Schleifen verwendet werden, um über Sequenzen wie Listen und Strings zu iterieren und für jedes Element in der Sequenz einen Codeblock auszuführen. Wir haben geübt, einfache Python-Skripte zu erstellen und auszuführen, um diesen Iterationsprozess zu demonstrieren. Wir haben auch begonnen, die range()-Funktion zu erkunden, die häufig mit for-Schleifen verwendet wird, um Zahlenfolgen für die Iteration zu generieren.