Einführung
Der Kontrollfluss (Control Flow) ist die Reihenfolge, in der einzelne Anweisungen, Befehle oder Funktionsaufrufe ausgeführt oder ausgewertet werden. Der Kontrollfluss eines Python-Programms wird durch bedingte Anweisungen, Schleifen und Funktionsaufrufe gesteuert.
In diesem Lab lernen Sie die Kernkonzepte zur Steuerung der Programmausführung in Python kennen. Sie werden bedingte Logik mithilfe von if-Anweisungen, verschiedene Operatoren, die neue match-case-Anweisung sowie Iteration mittels while- und for-Schleifen erkunden. Am Ende dieses Labs werden Sie in der Lage sein, dynamischere und leistungsfähigere Python-Programme zu schreiben.
Vergleichs- und Boolesche Operatoren
In diesem Schritt lernen Sie, wie Sie Vergleichs- und Boolesche Operatoren verwenden, um logische Ausdrücke zu bilden. Diese Ausdrücke sind grundlegend für die Ablaufsteuerung, da sie entweder zu True oder False ausgewertet werden, was dann bestimmt, wie das Programm fortfährt.
Vergleichsoperatoren
Vergleichsoperatoren werden verwendet, um zwei Werte miteinander zu vergleichen. Hier ist eine Tabelle der gängigen Vergleichsoperatoren:
| Operator | Bedeutung |
|---|---|
== |
Gleich (Equal to) |
!= |
Ungleich (Not equal to) |
< |
Kleiner als (Less than) |
> |
Größer als (Greater Than) |
<= |
Kleiner oder gleich (Less than or Equal to) |
>= |
Größer oder gleich (Greater than or Equal to) |
Diese Operatoren ergeben True oder False. Zum Beispiel ist 42 == 42 True, aber 42 == '42' ist False, da die Typen (Integer und String) unterschiedlich sind.
Boolesche Operatoren
Es gibt drei Boolesche Operatoren: and, or und not. Sie werden verwendet, um boolesche Werte zu kombinieren oder zu negieren. Ihre Reihenfolge der Auswertung (Präzedenz) ist not, dann and, gefolgt von or.
Der and-Operator gibt nur dann True zurück, wenn beide Ausdrücke wahr sind.
Der or-Operator gibt True zurück, wenn mindestens einer der Ausdrücke wahr ist.
Der not-Operator invertiert den booleschen Wert (not True wird zu False).
Vermischung von Operatoren
Sie können Vergleichs- und Boolesche Operatoren kombinieren, um komplexere logische Ausdrücke zu erstellen.
Hinweis: Wenn Sie mit der WebIDE (ähnlich VS Code) nicht vertraut sind, lernen Sie diese zuerst in diesem Lab.
Zum Beispiel:
(4 < 5) and (5 < 6)
Ausgabe:
True
Nun wollen wir dies üben. Öffnen Sie die Datei operators_example.py aus dem Dateiexplorer auf der linken Seite. Fügen Sie den folgenden Code in die Datei ein. Dieser Code kombiniert mehrere Operatoren, um ein einzelnes boolesches Ergebnis auszuwerten.
## operators_example.py
result = 2 + 2 == 4 and not 2 + 2 == 5 and 2 * 2 == 2 + 2
print(result)
Um das Skript auszuführen, öffnen Sie ein Terminal in der WebIDE und führen Sie den folgenden Befehl aus:
python3 operators_example.py
Sie sollten die folgende Ausgabe sehen, da der Ausdruck zu True ausgewertet wird:
True
If-Anweisungen und Ternärer Operator
In diesem Schritt lernen Sie, den Programmfluss mit if, elif und else-Anweisungen zu steuern, um Codeblöcke basierend auf bestimmten Bedingungen auszuführen. Dieser Schritt führt auch den ternären bedingten Operator ein, um prägnante einzeilige Bedingungsausdrücke zu schreiben.
Die if, elif und else Anweisungen
- Die
if-Anweisung führt einen Codeblock aus, wenn ihre BedingungTrueist. - Die
elif(else if) Anweisung prüft eine weitere Bedingung, falls die vorhergehendenif- oderelif-BedingungenFalsewaren. - Die
else-Anweisung führt einen Codeblock aus, wenn alle vorhergehendenif- undelif-BedingungenFalsewaren.
Hier ist die grundlegende Struktur:
if condition1:
## Code, der ausgeführt wird, wenn condition1 True ist
elif condition2:
## Code, der ausgeführt wird, wenn condition1 False und condition2 True ist
else:
## Code, der ausgeführt wird, wenn alle Bedingungen False sind
Ternärer Bedingungsoperator
Der ternäre Operator bietet eine Kurzform, um einfache if-else-Anweisungen in einer einzigen Zeile zu schreiben. Seine Syntax lautet:
<expression1> if <condition> else <expression2>
Zum Beispiel ist print('kid' if age < 18 else 'adult') eine kompakte Schreibweise für einen vollständigen if-else-Block.
Nun üben wir die Verwendung eines vollständigen Bedingungsblocks. Öffnen Sie die Datei if_example.py und fügen Sie den folgenden Code hinzu. Dieses Skript prüft den Wert der Variablen name und gibt entsprechend eine andere Nachricht aus.
## if_example.py
name = 'Antony'
if name == 'Debora':
print('Hi Debora!')
elif name == 'George':
print('Hi George!')
else:
print('Who are you?')
Führen Sie das Skript im Terminal aus:
python3 if_example.py
Da der name 'Antony' ist, wird weder die if- noch die elif-Bedingung erfüllt, sodass der else-Block ausgeführt wird.
Ausgabe:
Who are you?
Switch Case Anweisung (Match Case)
In diesem Schritt erkunden Sie Structural Pattern Matching (Strukturelles Musterabgleich), das leistungsstarke Switch-Case-Äquivalent von Python, das in Python 3.10 eingeführt wurde. Sie üben den Abgleich von Werten, die Verwendung von ODER-Mustern (OR patterns) und die Implementierung von Standardfällen mit den Schlüsselwörtern match und case.
Eine match-Anweisung nimmt einen Ausdruck entgegen und vergleicht dessen Wert mit aufeinanderfolgenden Mustern, die in einem oder mehreren case-Blöcken angegeben sind.
Grundlegender Abgleich
Sie können gegen literale Werte wie Zahlen oder Zeichenketten abgleichen.
ODER-Muster (OR Patterns)
Sie können mehrere literale Muster in einem einzigen case mit dem Operator | (oder) kombinieren. Zum Beispiel: case 200 | 201:.
Standardfall (Default Case)
Das Unterstrichsymbol (_) ist ein Platzhalter (Wildcard) und wird verwendet, um einen Standardfall zu definieren, der zutrifft, wenn kein anderes Muster übereinstimmt.
Lassen Sie uns dies üben. Öffnen Sie die Datei match_example.py und fügen Sie den folgenden Code hinzu. Dieses Skript verwendet eine match-Anweisung, um eine Aktion basierend auf einem HTTP-Antwortcode zu bestimmen.
## match_example.py
response_code = 800
match response_code:
case 200 | 201:
print("OK")
case 300 | 307:
print("Redirect")
case 400 | 401:
print("Bad Request")
case 500 | 502:
print("Internal Server Error")
case _:
print("Invalid Code")
Führen Sie das Skript in Ihrem Terminal aus:
python3 match_example.py
Da response_code 800 ist, stimmt es mit keinem der spezifischen Fälle überein, sodass der Standardfall (_) ausgeführt wird.
Ausgabe:
Invalid Code
While-Schleifen und Schleifensteuerung
In diesem Schritt meistern Sie die while-Schleife zur wiederholten Ausführung, solange eine Bedingung wahr ist. Sie lernen auch, das Schleifenverhalten mithilfe der break-Anweisung zum Beenden der Schleife und der continue-Anweisung zum Überspringen der aktuellen Iteration zu steuern.
Die while-Schleife
Eine while-Schleife führt eine Zielanweisung wiederholt aus, solange eine gegebene Bedingung True ist. Es ist entscheidend sicherzustellen, dass die Bedingung irgendwann False wird, um eine Endlosschleife zu vermeiden.
Die break-Anweisung
Die break-Anweisung beendet die aktuelle Schleife und setzt die Ausführung bei der nächsten Anweisung fort, genau wie das traditionelle break in C.
Die continue-Anweisung
Die continue-Anweisung verwirft alle verbleibenden Anweisungen in der aktuellen Iteration der Schleife und gibt die Kontrolle zurück an den Anfang der Schleife.
Erstellen wir eine einfache while-Schleife. Öffnen Sie die Datei while_example.py und fügen Sie den folgenden Code hinzu. Dieses Skript gibt fünfmal eine Nachricht aus.
## while_example.py
spam = 0
while spam < 5: ## Fahren fort, solange spam kleiner als 5 ist
print('Hello, world.')
spam = spam + 1 ## Zähler erhöhen, um Endlosschleife zu vermeiden
Führen Sie nun das Skript im Terminal aus:
python3 while_example.py
Die Schleife wird ausgeführt, solange spam kleiner als 5 ist. In jeder Iteration wird spam um 1 erhöht.
Ausgabe:
Hello, world.
Hello, world.
Hello, world.
Hello, world.
Hello, world.
For-Schleifen und Iteration
In diesem Schritt verwenden Sie die for-Schleife, um über Elemente in einer Sequenz wie einer Liste oder einem String zu iterieren. Dieser Schritt behandelt die Verwendung der range()-Funktion, um eine bestimmte Anzahl von Malen zu loopen, den optionalen else-Block in einer for-Schleife und wie man ein Programm mit sys.exit() vollständig beendet.
Die for-Schleife
Eine for-Schleife wird verwendet, um über eine Sequenz zu iterieren (die entweder eine Liste, ein Tupel, ein Dictionary, eine Menge oder ein String ist).
Die range()-Funktion
Die range()-Funktion erzeugt eine Zahlenfolge, was nützlich ist, um eine bestimmte Anzahl von Malen zu loopen.
range(stop): Erzeugt Zahlen von 0 bis (aber nicht einschließlich)stop.range(start, stop): Erzeugt Zahlen vonstartbisstop.range(start, stop, step): Erzeugt Zahlen vonstartbisstopmit einer Schrittweite vonstep.
Beenden eines Programms mit sys.exit()
Die Funktion sys.exit() kann aufgerufen werden, um das Programm sofort zu beenden. Sie müssen zuerst import sys verwenden, um sie nutzen zu können.
Lassen Sie uns die Verwendung einer for-Schleife mit range() üben. Öffnen Sie die Datei for_example.py und fügen Sie den folgenden Code hinzu. Dieses Skript gibt gerade Zahlen von 0 bis 8 aus.
## for_example.py
## range(start, stop, step)
for i in range(0, 10, 2):
print(i)
Führen Sie das Skript im Terminal aus:
python3 for_example.py
Die Funktion range(0, 10, 2) erzeugt Zahlen beginnend bei 0, bis (aber nicht einschließlich) 10, mit einer Schrittweite von 2.
Ausgabe:
0
2
4
6
8
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss des Labors! Sie haben nun die grundlegenden Konzepte des Kontrollflusses (Control Flow) in Python gemeistert.
In diesem Labor:
- Haben Sie gelernt, wie man Vergleichs- und boolesche Operatoren verwendet, um logische Bedingungen zu formulieren.
- Haben Sie geübt, die Programmausführung mit
if,elifundelse-Anweisungen sowie dem prägnanten ternären Operator zu steuern. - Haben Sie die leistungsstarke
match-case-Anweisung von Python 3.10 für das strukturelle Pattern Matching (strukturelle Mustererkennung) kennengelernt. - Haben Sie gelernt, Schleifen mit
whileundforzu erstellen und deren Verhalten mithilfe vonbreakundcontinuezu steuern.
Mit diesen Fähigkeiten können Sie nun komplexere und intelligentere Python-Programme schreiben, die Entscheidungen treffen und Aufgaben wiederholen können.



