i

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 den elif-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.")

Suche

v
7.4.5.2
inf-schule.de/oop/spiele-python/entscheidungen/fk-fallunterscheidung
inf-schule.de/7.4.5.2

Rückmeldung geben