Fachkonzept: Fallunuterscheidung
Im einfachsten Fall laufen Python-Programme oder Funktionen von vorne nach hinten ab. Häufig ist es jedoch notwendig, dass bestimmte Programmteile nur unter bestimmten Bedingungen ablaufen.
Bedingtes Ausführen von Programmteilen
Im einfachsten Fall wird ein bestimmter Programmteil nur ausgeführt, wenn eine bestimmte Bedingung erfüllt ist.jahr = int(input("Geben Sie eine Jahreszahl ein: "))
# Jahr wird als Zeichenkette eingelesen
# und in eine Zahl (Integer) umgewandelt.
if jahr == 1648:
print("In diesem Jahr endete der 30-jährige Krieg.")
print("Danke, dass Sie das Programm verwendet haben.")
Der Teil des Programms, der nur ausgeführt wird, wenn die Bedingung erfüllt ist, wird in Python eingerückt dargestellt; auf diese Weise erkennt der Python-Interpreter, welche nachfolgenden Befehle wieder in jedem Fall ausgeführt werden (wie hier die letzte Zeile.)
Alternative Ausführung von Programmteilen
Ebenfalls lässt sich festlegen, dass im Fall, dass die Bedingung nicht erfüllt ist, ein anderer Programmteil ausgeführt wird.
jahr = int(input("Geben Sie eine Jahreszahl ein: "))
jahr = int(input("Geben Sie eine Jahreszahl ein: "))
# Jahr wird als Zeichenkette eingelesen
# und in eine Zahl (Integer) umgewandelt.
if jahr > 1648:
print("Das Jahr liegt nach dem Ende des 30-jährigen Krieges.")
else:
print("Das Jahr liegt vor dem Ende des 30-jährigen Krieges.")
print("Danke, dass Sie das Programm verwendet haben.")
Verschachtelte Fallunterscheidungen
jahr = int(input("Geben Sie eine Jahreszahl ein: "))
# Jahr wird als Zeichenkette eingelesen
# und in eine Zahl (Integer) umgewandelt.
if jahr > 1648:
print("Das Jahr liegt nach dem Ende des 30-jährigen Krieges.")
else:
if jahr >= 1618:
print("Das Jahr liegt im 30-jährigen Krieg")
else:
print("Das Jahr liegt vor Beginn des 30-jährigen Krieges.")
print("Danke, dass Sie das Programm verwendet haben.")
Hier werden im Grunde drei Fälle unterschieden. Man sieht, dass die
zusätzliche Falluntescheidung im else
-Teil insgesamt nach
rechts eingerückt ist. Werden viele Fälle unterschieden, kann es auf
diese Weise passieren, dass der Programmtext unübersichtlich wird und
durch die Mehrfach-Verschachtelungen weit nach rechts rückt.
elif für Mehrfach-Falluntescheidungen
Durch denelif
-Teil der Fallunterscheidung (kurz für "else
if") lässt sich dies vermeiden und der Programmtext wird
deutlich lesbarer.
jahr = int(input("Geben Sie eine Jahreszahl ein: "))
# Jahr wird als Zeichenkette eingelesen
# und in eine Zahl (Integer) umgewandelt.
if jahr > 1648:
print("Das Jahr liegt nach dem Ende des 30-jährigen Krieges.")
elif jahr >= 1618:
print("Das Jahr liegt im 30-jährigen Krieg")
else:
print("Das Jahr liegt vor Beginn des 30-jährigen Krieges.")
print("Danke, dass Sie das Programm verwendet haben.")