Grundlagen der bedingten Anweisungen in Python: if-elif-else, Dictionary und match-case verständlich erklärt

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 zur switch-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 der if-Anweisung realisiert.

Grundstruktur von if-elif-else-Anweisungen

Bedingte Anweisungen in Python werden mit if 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 eine switch-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 wie switch 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 von if-elif-else. So können Bedingungen flexibel und verständlich umgesetzt werden.

Bedingte Anweisungen mit if-elif-else

Mit if-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 keine switch-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 von Dictionaries (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 bleibt if-elif-else oft die bessere Wahl.

4. Alternativen mit match-Anweisung ab Python 3.10

Seit Python 3.10 gibt es die neue match-Anweisung, die Funktionen ähnlich einer switch-Anweisung bietet. Damit lassen sich Bedingungen per Pattern-Matching umsetzen.

Grundlagen der match-Anweisung

Mit match 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, ist if-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 die match-Anweisung – besonders wenn Pattern-Matching gefragt ist.
侍エンジニア塾