Direkt zum Inhalt
HeimAnleitungenPython

Python IF-, ELIF- und ELSE-Anweisungen

In diesem Lernprogramm lernst du ausschließlich die if else-Anweisungen von Python kennen.
Aktualisierte 25. Okt. 2024  · 9 Min. lesen

Python IF-, ELIF- und ELSE-Anweisungen

Wenn du Code in einer beliebigen Sprache schreibst, musst du den Fluss deines Programms kontrollieren. Das ist in der Regel der Fall, wenn es um Entscheidungen geht - du willst eine bestimmte Codezeile ausführen, wenn eine Bedingung erfüllt ist, und eine andere, wenn sie nicht erfüllt ist. In Python gibt es zu diesem Zweck die if-, elif- und else-Anweisungen. In diesem Tutorium lernst du anhand eines Beispiels die einfache if-Anweisung kennen und gehst schrittweise zu if-else und dann zu if-elif-else-Anweisungen über. Du wirst auch etwas über Verschachtelung lernen und ein verschachteltes if-Beispiel sehen. Lasst uns loslegen....

Einfache if-Anweisung

Dies ist das einfachste Beispiel für eine bedingte Anweisung. Die Syntax lautet:

if(condition):
      indented Statement Block

Der Zeilenblock, der nach dem Doppelpunkt (:) um den gleichen Betrag eingerückt wird, wird ausgeführt, wenn die Bedingung WAHR ist.

Python IF-, ELIF- und ELSE-Anweisungen
Quelle: python by Programiz

Nehmen wir zum Beispiel an, du zeichnest die Punktzahl für einen bestimmten Kurs auf. Die Gesamtpunktzahl beträgt 100, wobei 50 Punkte auf die theoretische Arbeit und 50 auf die praktische Arbeit entfallen. Du möchtest eine Fehlermeldung oder Warnung anzeigen, wenn die Punktzahl 100 überschreitet.

score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
    print("Invalid score. Please check the input.")

Der Doppelpunkt (:) ist wichtig, weil er die Bedingung von den Anweisungen trennt, die nach der Auswertung der Bedingung ausgeführt werden sollen. Dies ist besonders wichtig für Anweisungen, bei denen es nur eine einzige Anweisung gibt und die Klammer ( ) nicht verwendet wird. Zum Beispiel:

score_theory = 40
score_practical = 45
if score_theory + score_practical > 100: # End of condition
    print("Invalid score. Please check the input.")

Die obige if-Anweisung prüft die "if"-Bedingung und stellt fest, dass die Anweisung (40 + 45 = 85) > 100 FALSCH ist und somit die Warnung nicht ausgegeben wird. Lasst uns die Aussage FALSCH machen und sehen, was passiert:

score_theory = 50
score_practical = 55
if(score_theory + score_practical >= 100):
    print("Invalid score. Please check the input.")
Invalid score. Please check the input.

Angenommen, du möchtest noch einen Schritt weiter gehen und eine Erklärung anzeigen, wenn die Gesamtpunktzahl tatsächlich innerhalb des Bereichs liegt, d.h. weniger als 100 beträgt. In diesem Fall würde die if-else-Anweisung helfen.

Einzelner Test: if-else-Anweisung

Die if-else-Anweisung wird im Code genauso verwendet wie in der englischen Sprache. Die Syntax für die if-else-Anweisung lautet:

if(condition):
      Indented statement block for when condition is TRUE
else:
      Indented statement block for when condition is FALSE

Python IF-, ELIF- und ELSE-Anweisungen
Quelle: python by Programiz

Versuchen wir, den Code von oben zu bearbeiten und das Problem neu zu definieren: Wenn du die Punkte für bestimmte Kursarbeiten notierst, musst du die Punkte für den theoretischen und den praktischen Teil addieren, um die Gesamtpunktzahl zu erhalten. Wenn die Gesamtpunktzahl unter 100 liegt, willst du die Meldung "Punktestand in Ordnung" anzeigen, und wenn nicht, dann eine Warnung wie zuvor.

score_theory = 40
score_practical = 45
if(score_theory + score_practical > 100):
    print("Please check the input. Score exceeds total possible score.")
else:
    print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is:  85

Tipp: Wenn du nur eine Codezeile auszuführen hast und nicht mehrere Zeilen im Code, die auf die Bedingung folgen, kannst du sie alle in dieselbe Zeile setzen. Das ist keine Regel, sondern nur eine gängige Praxis unter Programmierern. Schreibe den Code von oben in diesem Stil um:

score_theory = 40
score_practical = 45
# Single statement: if(condition): Statement for when condition is true
if (score_theory + score_practical > 100): print("Please check the input. Score exceeds total possible score.")
# Single statement: if(condition): Statement for when condition is false
else: print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is:  85

Stell dir nun einen Fall vor, in dem einer der Werte 50 übersteigt, die Summe aber immer noch unter 100 liegt. Was denkst du, was dann passieren würde?

score_theory = 60
score_practical = 40
if(score_theory + score_practical > 100):
    print("Please check the input. Score exceeds total possible score.")
else:
    print("Score validated. Your total is: ", score_theory + score_practical)
Score validated. Your total is:  100

Das ist falsch, denn du weißt, dass die Höchstgrenze für die Einzelnoten in Theorie und Praxis 50 nicht überschreiten darf. Wie kannst du das im Code darstellen? Die Antwort: if-elif-else-Anweisung.

Mehrere Tests: Python if-elif-else-Anweisung

Lasst uns das Problem, das wir bisher haben, in Worte fassen, bevor wir uns in den Code stürzen.

  • Schritt 1. Gib die beiden Punktzahlen ein: score_theory und score_practical

  • Schritt 2. Überprüfe, dass keine der beiden Punktzahlen die maximal mögliche Punktzahl, also 50, überschreitet. Damit ist auch das Problem gelöst, dass die Gesamtpunktzahl nicht über 10 hinausgeht. Wenn einer der beiden Werte größer als 50 ist, zeige die Warnung an und verlasse das Programm.

    • 2.1 Überprüfung auf score_theory
    • 2.2 Prüfung auf score_practical
  • Schritt 3. Wenn keiner von beiden die Punktzahl überschreitet, gibst du ein "Ergebnis okay" aus und beendest das Spiel.

# Step 1
score_theory = 60
score_practical = 20

if(score_theory > 50):
    print("Please check the input score for 'Theory'.") # Step 2.1
elif(score_practical > 50):
    print("Please check the input score for 'Practical'.")  # Step 2.2
else:
    print("Score validated. Your total is: ",score_theory + score_practical) # Step 3
Please check the input score for 'Theory'.

Die Syntax gefolgt von der if-else-if-Anweisung lautet:

if(Condition1):
      Indented statement block for Condition1
elif(Condition2):
       Indented statement block for Condition2
else:
       Alternate statement block if all condition check above fails

Python IF-, ELIF- und ELSE-Anweisungen
Quelle: python by Programiz

Eine einfache Möglichkeit, die Wirkung der if-elif-else-Anweisung in Python als einfache if-else-Anweisung zu sehen, ist, sie wie folgt zu schreiben:

score_theory = 60
score_practical = 20

if(score_theory > 50):
    print("Please check the input score for 'Theory'.")
else:
    if(score_practical > 50):
        print("Please check the input score for 'Practical'.")  
    else:
        print("Score validated. Your total is: ",score_theory + score_practical)
Please check the input score for 'Theory'.

Die elif-Anweisung macht das Schreiben von Code tatsächlich einfacher. Stell dir vor, wenn die Problemstellung komplexer wird, dann könnte es zu einem Albtraum werden, jede if-else-Anweisung innerhalb einer anderen if-Anweisung zu verfolgen!

Lass uns das gleiche Beispiel noch einmal durchspielen. Stell dir vor, du möchtest zum Beispiel den Überblick über mehrere Kursarbeiten behalten: Wissenschaft" und "Englisch". Die Gesamtpunktzahl für beide ist immer noch dieselbe, nämlich 100. In Naturwissenschaften ist die Aufteilung zwischen Theorie und Praxis 50:50, aber in Englisch 60:40. Kannst du trotzdem die oben genannten Formate verwenden?

YES! Und das kannst du ganz einfach mit dem Konzept der verschachtelten if-Anweisungen tun

Python Verschachtelte if-Anweisungen

Wenn du eine if-Anweisung innerhalb einer anderen if-Anweisung hast, nennt man das in der Programmierwelt Verschachtelung. Es muss nicht immer eine einfache if-Anweisung sein, sondern du kannst das Konzept der if-, if-else- und sogar if-elif-else-Anweisungen verwenden, um eine komplexere Struktur zu bilden.

Machen wir einen Code für das oben beschriebene Beispiel:

coursework = "English"
score_theory = 53
score_practical = 35

if(coursework == "Science" or coursework == "science"):
    if(score_theory > 50):
        print("Please check the input score for 'Science: Theory'.")
    elif(score_practical > 50):
            print("Please check the input score for 'Science: Practical'.")  
    else:
        print("Score validated for Science. Your total is: ",score_theory + score_practical)             
elif(coursework == "English" or coursework == "english"):
    if(score_theory > 60):
        print("Please check the input score for 'English: Theory'.")
    elif(score_practical > 40):
            print("Please check the input score for 'English: Practical'.")  
    else:
        print("Score validated for English. Your total is: ",score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Score validated for English. Your total is:  88

Hast du die Verwendung von or im obigen Code bemerkt? Er wird verwendet, um "Science" und "Science" als dieselbe Kursarbeit zu bewerten, und dasselbe gilt für "English" und "English". Du kannst boolesche Anweisungen wie oder und verwenden, um mehrere Bedingungen miteinander zu kombinieren. Du musst aber darauf achten, die boolesche Ausgabe solcher kombinierten Anweisungen zu verstehen, um den Kontrollfluss deines Programms vollständig zu erfassen.

Wir können den obigen Code umschreiben, um die Punkte in der gleichen Anweisung zu überprüfen, aber das macht den Code schwer lesbar und die Anweisungen manchmal schwer zu debuggen.

coursework = "English"
score_theory = 53
score_practical = 78

if(coursework == "Science" or coursework == "science"):
    if(score_theory > 50 or score_practical > 50):
        # Can't distinguish the error in Science: theory or Science: Practical
        print("Please check the input score for Science.")
    else: print("Score validated for Science. Your total is: ",score_theory + score_practical)             
elif(coursework == "English" or coursework == "english"):
    if(score_theory > 60 or score_practical > 40):
        # Can't distinguish the error in English: theory or English: Practical
        print("Please check the input score for English.")
    else: print("Score validated for English. Your total is: ",score_theory + score_practical)
else: print("Coursework not recognised. Please enter score for either Science or English.")
Please check the input score for English.

Voila!

In diesem Tutorium hast du dich mit einem der wichtigsten Kontrollflussmechanismen in Python beschäftigt. Du hast mit einem Beispiel auf mehreren Ebenen gearbeitet, um die Variationen der bescheidenen if-Anweisung in Aktion zu sehen. Wenn du mehr über Python erfahren möchtest, schau dir den DataCamp-Kurs "Einführung in Python für Data Science " an.

Python IF, ELIF und ELSE FAQs

Was ist die if-Anweisung in Python?

Die Anweisung if wird verwendet, um einen Codeblock auszuführen, wenn eine bestimmte Bedingung erfüllt ist.

Wie verwende ich die elif-Anweisung in Python?

Die Anweisung elif (kurz für "else if") wird verwendet, um zusätzliche Bedingungen anzugeben, die nach der anfänglichen if-Anweisung getestet werden. Wenn die Bedingung der Anweisung if falsch und die Bedingung der Anweisung elif wahr ist, wird der mit der elif-Anweisung verbundene Codeblock ausgeführt.

Kann ich mehrere elif-Anweisungen in einem einzigen if-Block haben?

Ja, du kannst mehrere elif Anweisungen in einem einzigen if Block haben.

Was ist die else-Anweisung in Python?

Die Anweisung else wird verwendet, um einen Codeblock anzugeben, der ausgeführt werden soll, wenn keine der Bedingungen in den vorangegangenen Anweisungen if und elif erfüllt sind.

Kann ich die else-Anweisung ohne if- oder elif-Anweisungen verwenden?

Nein, die Anweisung else muss in Verbindung mit einer Anweisung if verwendet werden. Sie kann nicht allein verwendet werden.

Themen

Python-Kurse

Course

Introduction to Python

4 hr
5.8M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
See DetailsRight Arrow
Start Course
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

See MoreSee More