Python If/Else-Anweisungen: Syntax, Beispiele, Mehrere Bedingungen und Bewährte Methoden

Bedingte Logik gehört zu den zentralen Grundlagen der Programmierung, da sie es ermöglicht, dass sich Code unterschiedlich verhält, je nachdem, ob eine bestimmte Bedingung wahr oder falsch ist. In Python werden if/else-Anweisungen verwendet, um den Ablauf eines Programms zu steuern, indem abhängig vom Ergebnis einer Bedingung unterschiedliche Codeblöcke ausgeführt werden.

Dieses Python-Tutorial zeigt, wie du mit if/else-Anweisungen arbeitest. Behandelt werden die grundlegende Syntax, der Umgang mit mehreren Bedingungen, verschachtelte Bedingungen, häufige Fehler und empfohlene Best Practices.

Was ist eine If/Else-Anweisung in Python?

Eine if/else-Anweisung in Python ist eine Kontrollstruktur, die einen Codeblock ausführt, wenn eine Bedingung zu True ausgewertet wird. Trifft das nicht zu, wird stattdessen ein alternativer Codeblock ausgeführt.

Grundlegende Syntax

if condition:
    # Code to execute if condition is True
else:
    # Code to execute if condition is False

Beispiel:

age = int(input("Enter your age: "))
if age >= 18:
    print("You are eligible to vote.")
else:
    print("You are not eligible to vote.")

if-elif-else für mehrere Bedingungen verwenden

Wenn mehr als nur eine mögliche Bedingung geprüft werden soll, ist die Struktur ifelifelse in Python besonders praktisch. Das Schlüsselwort elif, also „else if“, erlaubt es, weitere Bedingungen zu testen, falls die ursprüngliche if-Bedingung nicht erfüllt ist. Dadurch lässt sich auch komplexere Entscheidungslogik übersichtlicher und sauberer umsetzen.

Beispiel:

marks = int(input("Enter your marks: "))
if marks >= 90:
    print("Grade: A")
elif marks >= 75:
    print("Grade: B")
elif marks >= 60:
    print("Grade: C")
else:
    print("Grade: F")

Einzeilige If/Else-Anweisungen (Ternärer Operator)

Python unterstützt außerdem eine kompaktere Schreibweise für einfache bedingte Ausdrücke. Diese wird meist als ternärer Operator bezeichnet. Damit kannst du in nur einer Zeile festlegen, welcher Wert zurückgegeben werden soll, wenn eine Bedingung wahr ist, und welcher, wenn sie falsch ist.

Beispiel:

num = int(input("Enter a number: "))
result = "Even" if num % 2 == 0 else "Odd"
print(result)

Verschachtelte If-Anweisungen

Mit verschachtelten if-Anweisungen kannst du zusätzliche Bedingungen innerhalb eines anderen if-Blocks prüfen. Das ist besonders hilfreich, wenn mehrere zusammenhängende Prüfungen stattfinden müssen, bevor ein bestimmter Codeabschnitt ausgeführt werden soll. Durch das Verschachteln von Bedingungen lässt sich detailliertere Entscheidungslogik strukturiert abbilden.

Beispiel:

num = int(input("Enter a number: "))
if num > 0:
    if num % 2 == 0:
        print("Positive Even Number")
    else:
        print("Positive Odd Number")
else:
    print("Negative Number or Zero")

Mehrere Bedingungen mit and, or und not verarbeiten

Python stellt logische Operatoren bereit, mit denen sich mehrere Bedingungen in einem einzigen Ausdruck kombinieren lassen. Dadurch können fortgeschrittenere Entscheidungsstrukturen im Code aufgebaut werden. Die verfügbaren logischen Operatoren in Python sind and, or und not.

Beispiel:

temp = int(input("Enter the temperature: "))

if temp > 30 and temp < 40:
    print("It's a hot day!")
else:
    print("It's not a hot day.")

# Example using 'or' operator
if temp > 30 or temp < 10:
    print("Temperature is extreme!")

# Example using 'not' operator
if not (temp > 30 and temp < 40):
    print("It's not a hot day.")

Wann du if/else statt match-case verwendest (Python 3.10+)

Seit Python 3.10 gibt es mit matchcase eine weitere Möglichkeit, bestimmte bedingte Prüfungen umzusetzen. Diese Funktion ist besonders nützlich, wenn du eine einzelne Variable mit mehreren möglichen Werten vergleichen möchtest, ohne auf lange oder tief verschachtelte if/else-Blöcke zurückgreifen zu müssen. In vielen Fällen macht matchcase den Code kompakter, verständlicher und wartungsfreundlicher.

Beispiel für match-case:

def get_day_name(day):
    match day:
        case 1:
            return "Monday"
        case 2:
            return "Tuesday"
        case _:
            return "Invalid day"

Vergleich von if/else- und match-case-Anweisungen

Merkmal if/else-Anweisungen match-case-Anweisung
Syntax Ausführlicher Kompakter
Lesbarkeit Kann bei vielen Bedingungen unübersichtlich werden Meist leichter zu lesen, wenn viele Werte geprüft werden
Anwendungsfälle Gut für einfache bedingte Prüfungen geeignet Ideal, um mehrere Werte einer einzelnen Variable zu prüfen
Performance Kein wesentlicher Unterschied Kein wesentlicher Unterschied
Python-Version In allen Python-Versionen verfügbar Seit Python 3.10 verfügbar

Wann du welche Variante verwenden solltest

Verwende if/else-Anweisungen, wenn du einfache Bedingungen prüfen möchtest oder wenn dein Code auf Python-Versionen vor 3.10 laufen muss.

Verwende matchcase, wenn du eine einzelne Variable mit mehreren möglichen Werten vergleichst, insbesondere in Python 3.10 oder neuer.

Häufige Fehler und Tipps zum Debugging

1. Einrückungsfehler

Python verwendet Einrückungen, um Codeblöcke zu definieren. Fehlen diese oder sind sie uneinheitlich, führt das zu einem Fehler.

Beispiel:

if True:
    print("This will cause an error!")  # IndentationError

Korrigiertes Beispiel:

if True:
    print("This will not cause an error!")

2. Falsche Verwendung von booleschen Operatoren

Werden logische Operatoren falsch eingesetzt, kann das zu unerwarteten Ergebnissen führen.

Beispiel:

if age >= 18 and age <= 60:  # Correct
if age >= 18 or <= 60:  # Incorrect

3. Unerwartete Eingaben abfangen

Wenn Benutzereingaben verarbeitet werden, ist es sinnvoll, mit Exception Handling ungültige Werte abzufangen.

try:
    num = int(input("Enter a number: "))
except ValueError:
    print("Invalid input! Please enter a number.")

4. Fehlerbehandlung mit If-Else-Anweisungen

In Python lässt sich Fehlerbehandlung auch mit Logik rund um if/else kombinieren. Das folgende Beispiel zeigt, wie das umgesetzt werden kann:

try:
    # Code that may raise an exception
    num = int(input("Enter a number: "))
except ValueError:
    # Code to handle the exception
    print("Invalid input! Please enter a number.")
else:
    # Code to execute if no exception is raised
    print("You entered a valid number.")
finally:
    # Code to execute regardless of whether an exception was raised
    print("Thank you for using this program.")

FAQs

1. Kann ich in Python mehrere elif-Bedingungen verwenden?

Ja, du kannst so viele elif-Bedingungen einfügen, wie nötig sind, wenn mehrere mögliche Fälle geprüft werden sollen.

if condition1:
    # code to execute if condition1 is True
elif condition2:
    # code to execute if condition2 is True
elif condition3:
    # code to execute if condition3 is True
else:
    # code to execute if all conditions are False

2. Was ist der Unterschied zwischen if und elif in Python?

Eine if-Anweisung wird immer zuerst ausgewertet. Erst wenn die if-Bedingung falsch ist, prüft Python die elif-Bedingungen der Reihe nach.

Die folgende Tabelle zeigt die Unterschiede:

if-Anweisung elif-Anweisung
Wird immer zuerst geprüft Wird nur geprüft, wenn die if-Bedingung falsch ist
Kann in mehreren separaten if-Anweisungen vorkommen Kann ebenfalls mehrfach innerhalb derselben Kette vorkommen
Kann von einem else-Block gefolgt werden Kann ebenfalls von einem else-Block gefolgt werden

Wichtig ist, dass immer nur ein Codeblock ausgeführt wird. Ist die if-Bedingung wahr, überspringt Python die elif– und else-Blöcke. Ist die if-Bedingung falsch, prüft Python den elif-Block. Ist auch die elif-Bedingung falsch, wird der else-Block ausgeführt.

Das folgende Beispiel zeigt, wie if, elif und else in Python zusammenspielen:

num = int(input("Enter a number: "))

if num > 0:
    print("The number is positive.")
elif num == 0:
    print("The number is zero.")
else:
    print("The number is negative.")

3. Wie vermeide ich Einrückungsfehler in Python-if-Anweisungen?

Achte darauf, dass jeder Codeblock korrekt eingerückt ist, indem du durchgehend vier Leerzeichen oder einen Tab verwendest.

4. Wie gehe ich am besten mit komplexen if/else-Bedingungen um?

Um die Lesbarkeit zu verbessern, solltest du komplexe Bedingungen in kleinere Hilfsfunktionen aufteilen oder Ausdrücke sorgfältig mit logischen Operatoren kombinieren.

Hier ist ein Beispiel für die Verwendung logischer Operatoren in Python:

num = int(input("Enter a number: "))

if num > 0 and num % 2 == 0:
    print("The number is positive and even.")
elif num > 0 and num % 2 != 0:
    print("The number is positive and odd.")
elif num == 0:
    print("The number is zero.")
else:
    print("The number is negative.")

5. Gibt es in Python eine Alternative zu switch-case?

Ja, seit Python 3.10 gibt es matchcase, das sich ähnlich wie eine switch-Anweisung verhält.

Hier ist ein Beispiel für die Verwendung von matchcase in Python:

def match_case_example(argument):
    match argument:
        case 1:
            print("You chose 1.")
        case 2:
            print("You chose 2.")
        case 3:
            print("You chose 3.")
        case _:
            print("Invalid choice.")

Fazit

Ein fundiertes Verständnis von if/else-Anweisungen ist unverzichtbar, wenn es darum geht, Entscheidungen in Python-Programmen abzubilden. Wenn du bedingte Logik sicher beherrschst, kannst du saubereren, effizienteren und weniger fehleranfälligen Code schreiben.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

CUDA und cuDNN installieren für GPU-Beschleunigung

AI/ML, Tutorial
VijonaHeute um 15:06 Uhr CUDA und cuDNN für GPU-Beschleunigung installieren GPU-Beschleunigung hat Deep Learning, wissenschaftliches Rechnen und maschinelles Lernen grundlegend verändert, weil sie im Vergleich zu klassischer CPU-basierter Verarbeitung deutlich mehr…