Bitte warten...

Python: Bedingungen und Ausnahmebehandlung

► Python-Dokumentation: if

Bedingte Verzweigungen innerhalb eines Programms werden mit dem Befehl if eingeleitet. Alternative Bedingungen werden mit elif geprüft. Verzweigungen für alle übrigen Fälle werden mit else eingeleitet. elif und else sind optional.

Die Programmblöcke, die im Falle einer positiven Prüfung einer Bedingung ausgeführt werden sollen, müssen eingerückt werden. Die in Python übliche Einrückung beträgt vier Leerzeichen.

Code kopieren
a = input("Geben Sie eine Zahl ein: ")
if a == "":
    print("Sie haben nichts eingegeben!")
else:
    a = float(a)
    if a < 0:
        print("Die Zahl ist negativ.")
    elif a > 0:
        print("Die Zahl ist positiv.")
    else:
        print("Die Zahl ist 0.")

# Ab hier wird das Programm normal fortgesetzt
print("Ihre Eingabe war", a)

Ternärer Operator

Eine verkürzte Schreibweise wird durch den sogenannten ternären (dreiteiligen) Operator ermöglicht.

Code kopieren
print("Die Zahl ist", "negativ." if a < 0 else "größer oder gleich null.")

# Ternäre Operatoren können auch verkettet werden:
print("Die Zahl ist", "negativ." if a < 0 else "positiv." if a > 0 else "gleich null.")

Operatoren

► Python-Dokumentation: Boolean Operations Comparisons

Um Bedingungen prüfen zu können, werden logische und Vergleichsoperatoren verwendet:

OperatorBedeutung
andund
oroder
notnicht
<kleiner als
<=kleiner oder gleich
==gleich
!=ungleich
>=größer oder gleich
>größer als
isidentisch
is notnicht identisch

Folgender Code demonstriert den Unterschied zwischen == und is. Der Wert 0 ist logisch immer False, andere Zahlen sind dagegen immer True. Die Zahl 0 ist andererseits nicht identisch mit dem logischen Wert False, und 1 ist nicht identisch mit True.

Code kopieren
a = 1

if a == True:
    print("1 ist gleich True.")
    
if a is True:
    print("1 ist identisch True.")
    
if a is not True:
    print("1 ist nicht identisch True.")

Ausnahmebehandlungen

► Python-Dokumentation: try

Unter Umständen kann ein Programm durch einen Laufzeitfehler abgebrochen werden. Dies lässt sich durch eine Ausnahmebehandlung mit Hilfe einer try/except-Konstruktion umgehen, allerdings kann in der Entwicklungsphase die Fehlersuche dadurch erschwert werden, da für den try-Abschnitt keine Fehlermeldungen mehr ausgegeben werden.

Im obigen Beispiel wird davon ausgegangen, dass der Benutzer nur Zahlen eingibt. Sollte er aber einen nicht numerischen Wert eingeben, so würde beim Versuch der Umwandlung der Eingabe in eine Gleitkommazahl in Zeile 5 ein Laufzeitfehler auftreten. Dies wird hier mit einer Ausnahmebehandlung aufgefangen:

Code kopieren
a = input("Geben Sie eine Zahl ein: ")
if a == "":
    print("Sie haben nichts eingegeben!")
else:
    try:
        a = float(a)
        if a < 0:
            print("Die Zahl ist negativ.")
        elif a > 0:
            print("Die Zahl ist positiv.")
        else:
            print("Die Zahl ist 0.")
    except:
        print("Ihre Eingabe war keine Zahl!")

# Ab hier wird das Programm normal fortgesetzt
print("Ihre Eingabe war", a)