Was sind „else“- und „elif“-Anweisungen?

Abgeschlossen

Was, wenn Ihr Programm auch etwas Code ausführen soll, wenn Ihr Testausdruck False ist? Oder was, wenn Sie einen weiteren Testausdruck einfügen möchten? Python verfügt über weitere Schlüsselwörter, die Sie verwenden können, um komplexere if-Anweisungen zu erstellen, else und elif. Wenn Sie if, else und elif in Kombination verwenden, können Sie komplexe Programme mit mehreren auszuführenden Testausdrücken und Anweisungen schreiben.

Arbeiten mit else

Sie wissen, dass bei Verwendung einer if-Anweisung der Programmtext nur ausgeführt wird, wenn der Testausdruck True ergibt. Um weiteren Code hinzuzufügen, der ausgeführt wird, wenn Ihr Testausdruck False ergibt, müssen Sie eine else-Anweisung hinzufügen.

Passen wir ein Beispiel aus dem vorherigen Abschnitt an:

a = 27
b = 93
if a >= b:
    print(a)

In diesem Beispiel passiert nichts, wenn a nicht größer oder gleich b ist. Angenommen, Sie möchten stattdessen b ausgeben, wenn der Testausdruck False ergibt:

a = 27
b = 93
if a >= b:
    print(a)
else:
    print(b)

Ausgabe: 93

Wenn der Testausdruck False ergibt, wird der Code im if-Anweisungstext übersprungen, und das Programm wird ab der else-Anweisung weiter ausgeführt. Die Syntax einer if/else-Anweisung ist immer:

if test_expression:
    # statement(s) to be run
else:
    # statement(s) to be run

Arbeiten mit elif

In Python ist das Schlüsselwort elif die Abkürzung für else if. Mithilfe von elif-Anweisungen können Sie dem Programm mehrere Testausdrücke hinzufügen. Diese Anweisungen werden in der Reihenfolge ausgeführt, in der sie geschrieben werden. Das Programm gibt also nur dann eine elif-Anweisung ein, wenn die erste if-Anweisung entsprechend False ist. Beispiel:

a = 27
b = 93
if a <= b:
    print("a is less than or equal to b")
elif a == b:
    print("a is equal to b")

Ausgabe: a is less than or equal to b

In dieser Variante wird die elif-Anweisung in diesem Codeblock nicht ausgeführt, weil die if-Anweisung True ist.

Die Syntax einer if/elif-Anweisung ist:

if test_expression:
    # statement(s) to be run
elif test_expression:
    # statement(s) to be run

Kombinieren von if-, elif- und else-Anweisungen

Sie können if-, elif- und else-Anweisungen kombinieren, um Programme mit komplexer bedingter Logik zu erstellen. Denken Sie daran, dass eine elif-Anweisung nur ausgeführt wird, wenn die if-Bedingung false ergibt. Beachten Sie auch, dass ein if-Block nur einen else-Block, aber mehrere elif-Blöcke aufweisen kann.

Sehen wir uns ein Beispiel mit einer if-, einer elif- und einer else-Anweisung an:

a = 27
b = 93
if a < b:
    print("a is less than b")
elif a > b:
    print("a is greater than b")
else: 
    print ("a is equal to b")    

Ein Codeblock, der alle drei Anweisungstypen verwendet, weist die folgende Syntax auf:

if test_expression:
    # statement(s) to be run
elif test_expression:
    # statement(s) to be run
elif test_expression:
    # statement(s) to be run
else:
    # statement(s) to be run

Arbeiten mit geschachtelter bedingter Logik

Python unterstützt auch geschachtelte bedingte Logik, was bedeutet, dass Sie if-, elif- und else-Anweisungen schachteln können, um noch komplexere Programme zu erstellen. Um Bedingungen zu schachteln, rücken Sie die inneren Bedingungen ein, und alles, was sich auf der gleichen Einzugsebene befindet, wird in demselben Codeblock ausgeführt:

a = 16
b = 25
c = 27
if a > b:
    if b > c:
        print ("a is greater than b and b is greater than c")
    else: 
        print ("a is greater than b and less than c")
elif a == b:
    print ("a is equal to b")
else:
    print ("a is less than b")

Dieser Codeteil erzeugt die Ausgabe a is less than b.

Geschachtelte bedingte Logik folgt den gleichen Regeln wie reguläre bedingte Logik in jedem Codeblock. Hier sehen Sie ein Beispiel für die Syntax:

if test_expression:
    # statement(s) to be run
    if test_expression:
        # statement(s) to be run
    else: 
        # statement(s) to be run
elif test_expression:
    # statement(s) to be run
    if test_expression:
        # statement(s) to be run
    else: 
        # statement(s) to be run
else:
    # statement(s) to be run