Verständnis der Python-Schleifen und Flusssteuerung für Anfänger

Python ist heute eine der am weitesten verbreiteten Sprachen. Wie fast alle anderen Programmiersprachen hat Python die Schleifenkonstruktion. Python-Schleifen wie die for-Schleife und die while-Schleife ermöglichen es Entwicklern, Kollektionen zu durchlaufen oder basierend auf verschiedenen Bedingungen zu iterieren.

In diesem Tutorial lernen Sie, wie Sie jede Art von Python-Schleife erstellen und verwenden können, sowie wie Sie Schleifen mithilfe der Python-Anweisungen break, pass und continue steuern können.

Lasst uns beginnen!

Voraussetzungen

Dieser Beitrag wird ein schrittweises Tutorial sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Python Version 3.6 oder höher installiert haben. In diesem Tutorial wird Python Version 3.9.2 auf einem Windows 10-System verwendet.

Verständnis iterable Python-Konstrukte

Bevor Sie Schleifen lernen können, müssen Sie das Konzept der iterierbaren Python-Konstrukte verstehen. Schleifen verarbeiten Sammlungen von Elementen wie Listen, Tupel und Wörterbücher. Jedes dieser Konstrukte enthält mehrere Elemente, über die Sie „iterieren“ können. Als solche ist jedes Konstrukt ein iterable mit Elementen, die eine Schleife individuell verarbeiten kann.

Wenn jemand von etwas Iterierbarem spricht, bedeutet dies, dass dies ein Element ist, das Sie mit einer Schleife jedes Objekt in dieser Sammlung lesen können.

Python For-Schleifen

Beginnen wir dieses Tutorial, indem wir zuerst For-Schleifen lernen. For-Schleifen wiederholen die Ausführung von Anweisungen oder Anweisungsblöcken, die von einem iterierbaren Ausdruck gesteuert werden. Mit anderen Worten, sie führen Code für jedes Element in einer Sammlung von Elementen aus.

For-Schleifen und Zeichenketten

Zum Beispiel haben Sie möglicherweise ein iterierbares Element wie eine Zeichenkette. In Python ist die Zeichenkette eine Sequenz von Zeichen. Jede Zeichenkette besteht aus einer Kombination von Zeichen. Vielleicht haben Sie eine Zeichenkette ADAM. Diese Zeichenkette besteht aus vier iterierbaren Zeichen: A, D, A und M.

Als eine Zeichenkette sieht Python nur ein Element; ADAM, wie unten gezeigt.

One element in Python

Aber da Python-Zeichenketten iterierbar sind, kann Python diese Zeichenkette in ein Array von Zeichen aufteilen und jedes Zeichen einzeln verarbeiten. Dazu erstellen Sie eine For-Schleife wie unten dargestellt.

Die For-Schleife hat ein Ziel oder einen Iterator (Buchstabe in diesem Fall), um jede Iteration zu repräsentieren. Sie teilen dann Python mit, welches iterierbare Element Sie verarbeiten möchten (ATA) unter Verwendung des Schlüsselworts in. Jedes Zeichen im Zeichenarray ist in der Zeichenkette.

Dann erstellen Sie innerhalb der For-Schleife den Code, den Sie für jede Iteration ausführen möchten. In diesem Beispiel gibt Python einfach jedes Zeichen im Zeichenarray (Zeichenkette) aus.

ATA = "ADAM"
for letter in ATA:
    print(letter)

Sie können unten sehen, dass Python jeden Buchstaben im String einzeln ausgibt.

Printing each character in a string with a for loop

For-Schleifen können über jedes iterable Element iterieren, wie z.B. Listen und Bereiche. Ersetzen Sie ATA in diesem Beispielabschnitt durch range(5), und Sie werden dasselbe Ergebnis sehen.

Python While-Schleifen

Während For-Schleifen Code für jedes Element in einer Sammlung von Elementen ausführen, führt die While-Schleife Code basierend auf einer bestimmten Bedingung aus. Genauer gesagt führt Python eine While-Schleife aus, solange eine Bedingung falsch ist.

Zum Beispiel ist eine häufige Anforderung in Python, einen Zähler zu erstellen und Code eine definierte Anzahl von Malen auszuführen. Um diese Situation zu erstellen, müssten Sie eine Bedingung definieren, die True zurückgeben würde, wenn der aktuelle Zähler den maximalen Zähler überschreitet.

Angenommen, Sie starten mit einer Variable namens count, die eine Ganzzahl 0 speichert. Sie möchten diese Ganzzahl um 1 erhöhen, aber nicht mehr als 5 überschreiten. Sie könnten so etwas erstellen:

count = 0
count = count + 1
count = count + 1
count = count + 1
count = count + 1
count = count + 1
print(count)

Das oben Genannte könnte funktionieren, ist jedoch überhaupt nicht effizient. Sie verwenden nicht das DRY-Prinzip. Sie wiederholen sich. Reduzieren Sie stattdessen die Code-Länge, indem Sie eine While-Schleife verwenden und Python sagen, dass count um 1 erhöht wird während count kleiner als sechs ist.

Die folgenden Beispiele verwenden eine While-Schleife, um eine Bedingung zu definieren (count < 6) und einen Ausdruck auszuführen (die print-Anweisung und erhöhen count um 1 während die Bedingung True ist.

count = 0
while (count < 6):
   print('The count is:', count)
   count = count + 1
Demonstrating a Python while loop

Flusssteuerung in Schleifen

In den beiden vorherigen Beispielen begannen und endeten sowohl die Python for-Schleife als auch die while-Schleife von selbst. Die for-Schleife endete, weil sie das Ende der iterierbaren Sammlung erreichte, und die while-Schleife endete, weil ihre Bedingung als True ausgewertet wurde.

Obwohl es üblich ist, dass Python-Schleifen „normal“ enden, können Sie auch das Verhalten der Schleife ändern, um vorzeitig zu beenden oder eine oder mehrere Iterationen zu überspringen.

Die Break-Anweisung

Wenn Sie eine Schleife vorzeitig beenden möchten, können Sie dies mit der break-Anweisung tun. Wenn sie innerhalb einer Schleife ausgeführt wird, stoppt die break-Anweisung die Schleife bei der aktuellen Iteration.

In der Regel verwenden Sie die break-Anweisung, wenn eine bestimmte Bedingung in einer Schleife erfüllt ist. Zum Beispiel haben Sie in dem vorherigen Beispiel einer for-Schleife gelernt, dass eine for-Schleife über ein Array von Zeichen in einem String iteriert. Vielleicht möchten Sie nur alle Zeichen bis zum ersten D verarbeiten.

Um eine for-Schleife (oder auch eine while-Schleife) zu stoppen, definieren Sie eine bestimmte Bedingung, die Sie erfüllen möchten, und fügen Sie dann eine break-Anweisung wie unten gezeigt hinzu.

In dem unten stehenden Beispiel beendet Python die for-Schleife im Moment, wenn die Iteratorvariable letter D entspricht.

ATA = "ADAM"
for letter in ATA:
	print(letter)
	if letter == "D":
		break
Demonstrating the break statement in a Python loop

Die Continue-Anweisung

Vielleicht müssen Sie eine Schleife basierend auf einer bestimmten Bedingung erstellen, möchten aber nicht unbedingt jedes iterierbare Element verarbeiten. In diesem Fall können Sie mit der continue-Anweisung Iterationen überspringen.

Im Gegensatz zur break-Anweisung, die die gesamte Schleife beendet, überspringt die continue-Anweisung die aktuelle Iteration. Verwenden Sie das obige Beispiel, vielleicht möchten Sie über jedes Zeichen in dem String ADAM iterieren, aber das Zeichen D überspringen. Sie könnten das Zeichen D überspringen, indem Sie eine Bedingung verwenden (wenn buchstabe == "D") und die continue-Anweisung, wie unten gezeigt.

ATA = "ADAM"
for letter in ATA:
	if letter == "D":
		continue
	print(letter)

Sie können unten sehen, dass Python das Zeichen D nicht zurückgegeben hat, weil die continue-Anweisung die print-Anweisung übersprungen hat, als es auf das Zeichen D stieß.

Using the Python continue statement

Die Pass-Anweisung

Lassen Sie uns den Abschnitt zur Flusssteuerung jetzt mit der pass-Anweisung abschließen. Die pass-Anweisung ist etwas einzigartig, da sie eigentlich nur ein Platzhalter ist. Die pass-Anweisung ist eine Möglichkeit, eine Schleife in einem Python-Skript zu definieren, die tatsächlich nichts tut.

Sagen wir, Sie haben eine for-Schleife, die Sie aus irgendeinem Grund in Ihrem Python-Skript belassen möchten. Aber Sie haben tatsächlich keinen Ausdruck, der darin ausgeführt werden soll, wie unten gezeigt.

for value in "adam":

Wenn Sie eine for-Schleife in Python mit einem Ausdruck definieren, gibt Python einen IdentationError zurück, wie unten gezeigt.

Error about no loop expression

Aber fügen Sie die pass-Anweisung als Ausdruck innerhalb der for-Schleife hinzu und Sie werden sehen, dass Python die for-Schleife ausführt, im Wesentlichen nichts tun.

Using the pass statement

Abschluss

In diesem Tutorial hast du gelernt, wie du mit Python-Schleifen beginnen kannst. Das Verständnis, wie Python-Schleifen funktionieren und wie man sie kontrolliert, bietet dir viel mehr Möglichkeiten, solide Python-Programme zu erstellen und aufzubauen.

Mit deinem neu erworbenen Wissen, wo wirst du eine Schleife in deinem Code einfügen?

Source:
https://adamtheautomator.com/python-loop/