目次
1. Grundlagen der bedingten Anweisungen in Python
Python ist eine weit verbreitete Programmiersprache, die für ihre Einfachheit und Leistungsfähigkeit bekannt ist. Besonders wichtig sind dabei bedingte Anweisungen, um den Programmablauf zu steuern. In diesem Artikel werden die Grundlagen der Bedingungen in Python sowie alternative Methoden zurswitch
-Anweisung erklärt.Was sind bedingte Anweisungen in Python?
Bedingte Anweisungen in Python ermöglichen es, den Programmfluss auf Basis bestimmter Bedingungen zu steuern. Zum Beispiel können unterschiedliche Anweisungen je nach Wert einer Variablen ausgeführt werden. In Python wird dies mit derif
-Anweisung realisiert.Grundstruktur von if-elif-else-Anweisungen
Bedingte Anweisungen in Python werden mitif
wie folgt geschrieben:x = 10
if x > 5:
print("x ist größer als 5")
elif x == 5:
print("x ist gleich 5")
else:
print("x ist kleiner als 5")
In diesem Code wird „x ist größer als 5“ ausgegeben, wenn x
größer als 5 ist. Andernfalls wird die nächste Bedingung geprüft. So lassen sich mehrere Bedingungen nacheinander prüfen und die entsprechende Anweisung ausführen. Bei mehreren Bedingungen kann elif
beliebig oft ergänzt werden.Warum gibt es in Python keine switch-Anweisung?
Viele Programmiersprachen verfügen über eineswitch
-Anweisung, mit der auf einfache Weise geprüft werden kann, ob eine Variable einem von mehreren Werten entspricht. In Python gibt es diese jedoch nicht, da die Sprache darauf ausgelegt ist, „einfachen und klaren“ Code zu schreiben. Mit if-elif-else
lässt sich die gleiche Funktionalität erreichen, sodass eine switch
-Anweisung nicht notwendig ist.
2. Warum gibt es keine switch-Anweisung in Python?
Die Entwickler von Python wollten die Programmiersprache so einfach und verständlich wie möglich halten und haben daher auf komplexe Syntax-Elemente wieswitch
verzichtet. Zwar ist eine switch
-Anweisung praktisch, um je nach Wert einer Variablen verschiedene Anweisungen auszuführen, aber die Entwickler sahen if-elif-else
als ausreichend an.Die Philosophie von Python: Klarer und einfacher Code
Ein zentrales Prinzip von Python ist die Betonung von Einfachheit. Um lesbaren und übersichtlichen Code zu fördern, vermeiden die Python-Entwickler unnötig komplexe Syntax und setzen stattdessen auf vielseitige Nutzung vonif-elif-else
. So können Bedingungen flexibel und verständlich umgesetzt werden.Bedingte Anweisungen mit if-elif-else
Mitif-elif-else
kann in Python dieselbe Funktion wie mit einer switch
-Anweisung realisiert werden. Zum Beispiel bei unterschiedlicher Behandlung je nach Wochentag:day = "Dienstag"
if day == "Montag":
print("Heute ist Montag")
elif day == "Dienstag":
print("Heute ist Dienstag")
else:
print("Ungültiger Tag")
So lassen sich mehrere Bedingungen leicht verzweigen. Werden die Bedingungen zahlreicher, kann der Code allerdings schnell lang werden. Hier lohnt es sich, effizientere Alternativen zu prüfen.3. Alternativen zur switch-Anweisung in Python
Da es in Python keineswitch
-Anweisung gibt, müssen andere Methoden zur Umsetzung von Bedingungen genutzt werden. Im Folgenden werden einige in Python häufig verwendete Alternativen vorgestellt.Ersatz mit Dictionaries
Eine beliebte Alternative ist die Verwendung vonDictionaries
(Wörterbüchern). Ein Dictionary besteht aus Schlüssel-Wert-Paaren und eignet sich hervorragend, um je nach Bedingung unterschiedliche Funktionen auszuführen.def case_one():
return "Dies ist Fall 1"
def case_two():
return "Dies ist Fall 2"
switch_dict = {
1: case_one,
2: case_two
}
x = 1
print(switch_dict.get(x, lambda: "Ungültiger Fall")())
Mit dieser Methode kann anhand des Schlüssels die passende Funktion ausgeführt werden. Dadurch wird der Code oft übersichtlicher als mit vielen if-elif-else
-Blöcken.Vorteile und Hinweise bei Dictionaries
Dictionaries machen den Code lesbarer und helfen dabei, viele Bedingungen effizient zu verwalten. Bei sehr komplexen Bedingungen sind sie jedoch nicht immer geeignet – in solchen Fällen bleibtif-elif-else
oft die bessere Wahl.
4. Alternativen mit match-Anweisung ab Python 3.10
Seit Python 3.10 gibt es die neuematch
-Anweisung, die Funktionen ähnlich einer switch
-Anweisung bietet. Damit lassen sich Bedingungen per Pattern-Matching umsetzen.Grundlagen der match-Anweisung
Mitmatch
wird ein Wert mit mehreren Fällen verglichen. Die erste zutreffende Bedingung wird ausgeführt. Dies ist ähnlich wie bei switch
in anderen Sprachen.def get_grade(score):
match score:
case 90 <= score <= 100:
return "A"
case 80 <= score < 90:
return "B"
case _:
return "F"
grade = get_grade(85)
print(grade)
Hier gibt match
je nach Wert von score
die passende Bewertung zurück. Die match
-Anweisung ist besonders bei vielen Bedingungen ein mächtiges Werkzeug.5. Leitfaden: Welche Methode wann einsetzen?
Jede Methode –if-elif-else
, Dictionary oder match
– hat ihre Vorteile. Hier erfahren Sie, wann welche Methode am sinnvollsten ist.Bei wenigen Bedingungen
Sind nur wenige Bedingungen zu prüfen, istif-elif-else
meist am einfachsten und effizientesten – besonders für kleine Skripte.Bei vielen Bedingungen
Bei vielen Bedingungen oder wenn Funktionen ausgeführt werden sollen, ist die Dictionary-Methode zu empfehlen. Sie erhöht die Übersichtlichkeit und erleichtert die Wartung des Codes.Bei komplexen Bedingungen oder Pattern-Matching
Nutzen Sie Python 3.10 oder höher und müssen Sie komplexe Bedingungen oder Muster abdecken, empfiehlt sich diematch
-Anweisung – besonders wenn Pattern-Matching gefragt ist.