Python3 Bedingte Steuerung
Python-Bedingungsanweisungen bestimmen anhand des Ausführungsergebnisses (True oder False) einer oder mehrerer Anweisungen, welcher Codeblock ausgeführt wird.
Der Ausführungsprozess von Bedingungsanweisungen lässt sich kurz durch das folgende Diagramm verstehen:
Ablauf der Codeausführung:

Schlüsselwörter zur Bedingungsprüfung
| Schlüsselwort / Funktion | Beschreibung | Beispiel |
|---|---|---|
if |
Bedingte Prüfanweisung; führt den Codeblock aus, wenn die Bedingung True ist | if x > 0: |
elif |
Verzweigung zur Mehrfachbedingungsprüfung (else if) | elif x == 0: |
else |
Wird ausgeführt, wenn keine der Bedingungen erfüllt ist | else: |
pass |
Leere Anweisung, dient als Platzhalter, um die vollständige Syntax sicherzustellen | if x > 0: pass |
match |
Strukturierte Mustererkennung (Python 3.10+, ähnlich zu switch) | match x: case 1: ... |
if-Anweisung
Die allgemeine Form einer if-Anweisung in Python lautet wie folgt:
- Wenn "condition_1" True ist, wird der Anweisungsblock "statement_block_1" ausgeführt
- Wenn "condition_1" False ist, wird "condition_2" ausgewertet
- Wenn "condition_2" True ist, wird der Anweisungsblock "statement_block_2" ausgeführt
- Wenn "condition_2" False ist, wird der Anweisungsblock "statement_block_3" ausgeführt
In Python wirdelifanstelle vonelse ifverwendet, daher lauten die Schlüsselwörter der if-Anweisung:if – elif – else。
Hinweis:
- 1. Nach jeder Bedingung muss ein Doppelpunkt verwendet werden:, der anzeigt, dass das Folgende der Anweisungsblock ist, der ausgeführt wird, wenn die Bedingung erfüllt ist.
- 2. Verwende Einrückung, um Anweisungsblöcke zu unterteilen. Anweisungen mit derselben Anzahl an Einrückungen bilden zusammen einen Anweisungsblock.
- 3. In Python gibt es keineswitch...case-Anweisung, aber in Version 3.10 wurde diematch...case-Anweisung hinzugefügt, mit ähnlicher Funktionalität. Siehe unten für Details.
GIF-Demo:

Beispiel
Das Folgende ist ein einfaches if-Beispiel:
Beispiel
Nach Ausführung des obigen Codes ist die Ausgabe:
1 - if 表达式条件为 true 100 Good bye!
Aus dem Ergebnis ist ersichtlich, dass die Anweisung innerhalb des entsprechenden if nicht ausgeführt wurde, weil die Variable var2 0 ist.
Das folgende Beispiel zeigt die Berechnung und Einschätzung des Alters eines Hundes:
Beispiel
Speichern Sie das obige Skript in der Datei dog.py und führen Sie das Skript aus:
$ python3 dog.py 请输入你家狗狗的年龄: 1 相当于 14 岁的人。 点击 enter 键退出
Im Folgenden sind häufig verwendete Operatoren in if aufgeführt:
| Operator | Beschreibung |
|---|---|
< |
Kleiner als |
<= |
Kleiner als oder gleich |
> |
Größer als |
>= |
Größer als oder gleich |
== |
Gleich, vergleicht, ob zwei Werte gleich sind |
!= |
Ungleich |
Beispiel
Die Ausgabe des obigen Beispiels:
False False
Die Datei high_low.py demonstriert numerische Vergleichsoperationen:
Beispiel
Nach Ausführung des obigen Skripts sieht die Beispielausgabe wie folgt aus:
$ python3 high_low.py 数字猜谜游戏! 请输入你猜的数字:1 猜的数字小了... 请输入你猜的数字:9 猜的数字大了... 请输入你猜的数字:7 恭喜,你猜对了!
if-Verschachtelung
In verschachtelten if-Anweisungen kann eine if...elif...else-Struktur in einer anderen if...elif...else-Struktur platziert werden.
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
Beispiel
Speichere das obige Programm in der Datei test_if.py. Nach der Ausführung lautet die Ausgabe:
$ python3 test.py 输入一个数字:6 你输入的数字可以整除 2 和 3
match...case
Python 3.10 hat match...caseals bedingte Verzweigung hinzugefügt, sodass keine Reihe vonif-elsemehr zur Fallunterscheidung verwendet werden muss.
Das Objekt nach match wird nacheinander mit dem Inhalt nach case abgeglichen. Wenn der Abgleich erfolgreich ist, wird der passende Ausdruck ausgeführt; andernfalls wird er direkt übersprungen._Es kann alles abgleichen.
SVG: match...case-AblaufdiagrammDas Syntaxformat lautet wie folgt:
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>case _:Ähnlich wiedefault:in C und Java: Wenn andere Fälle nicht übereinstimmen, stimmt dieser überein, wodurch sichergestellt wird, dass ein Abgleich immer erfolgreich ist.
Beispiel
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Etwas stimmt nicht mit dem Internet"
print(http_error(400))
print(http_error(404))
print(http_error(418))
print(http_error(500))
Das Obige ist ein Beispiel, das HTTP-Statuscodes ausgibt. Die Ausgabeergebnisse für mehrere Statuscodes sind:
Bad request Not found I'm a teapot Something's wrong with the internet
Ein Fall kann auch mehrere passende Bedingungen festlegen, getrennt durch|, zum Beispiel:
...
case 401|403|404:
return "Not allowed"
SVG: | Diagramm zur Übereinstimmung mit mehreren Bedingungen
Beispiel
match status:
case 200:
return "OK - Anfrage erfolgreich"
case 301 | 302:
return "Weiterleitung - Umleitung"
case 401 | 403 | 404:
return "Nicht erlaubt - keine Berechtigung oder nicht gefunden"
case 500 | 502 | 503:
return "Serverfehler - Serverfehler"
case _:
return "Unbekannter Status - unbekannter Statuscode"
for code in [200, 301, 403, 500, 418]:
print(f"Statuscode {code}: {check_permission(code)}")
match...caseWeitere Informationen findest du unter:Python match-case-Anweisung
Weitere Erweiterungen