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.
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.
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.")
# Der ternäre Operator besitzt eine niedrige Präzedenz. Das bedeutet, die Ergebnisse einer Bedingung werden zuerst ausgewertet:
print(10 + 1 if False else 2 ) # Ergebnis: 2
print(10 + (1 if False else 2)) # Ergebnis: 12
Operatoren
► Python-Dokumentation: Boolean Operations Comparisons
Um Bedingungen prüfen zu können, werden logische und Vergleichsoperatoren verwendet:
Operator | Bedeutung |
and | und |
or | oder |
not | nicht |
< | kleiner als |
<= | kleiner oder gleich |
== | gleich |
!= | ungleich |
>= | größer oder gleich |
> | größer als |
is | identisch |
is not | nicht 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.
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:
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)