Python

if-Anweisung in Python – Bedingungen mit if, elif und else

Sei die Erste, die diesen Beitrag teilt!

Ein wichtiges Tool, um einen guten Code zu schreiben, ist die if-Anweisung in Python (engl. if-statement). Mit ihr kannst du prüfen, ob gewisse Bedingungen erfüllt sind, um damit den Ablauf eines Programms zu kontrollieren.

Möchtest du, dass ein bestimmter Teil deines Codes nur ausgeführt wird, wenn eine gewisse Bedingung erfüllt ist, dann brauchst du eine if-Anweisung.

Das englische Wort „if“ heißt auf Deutsch „wenn“. Somit kannst du dir leicht merken, was der if-Ausdruck in Python bedeutet.

In diesem Beitrag findest du zuerst eine allgemeine Erklärung, wie du if in deinem Python-Code verwendest. Denn die if-Anweisung ist eine wichtige Kontrollstruktur. Anschließend gebe ich dir noch weitere Beispiele für Code-Snippets mit else, elif (else if) und verschachtelten if-Anweisungen.


Python-Code für if-Anweisung

Ganz allgemein schreibst du den Code für eine if-Anweisung in Python folgendermaßen:

if [Bedingung]:
    [Anweisung(en)]

Du beginnst mit dem Wort if, dann folgt ein Leerzeichen und dann die Bedingung, die überprüft werden soll.

Das Ganze schließt du mit einem Doppelpunkt ab. Den darf man nicht vergessen.

Anschließend kommen in den folgenden Zeilen die Anweisungen, die innerhalb des if-Blocks ausgewertet werden sollen.

Achtung, alles, was innerhalb des if-Blocks passieren soll, muss eingerückt werden.

Schauen wir uns dazu ein Beispiel an.


Beispiel 1 – Pythoncode mit if-Anweisung

zahl = 10
if zahl > 5:
    print("Ja, die Zahl ist größer fünf!")

In dem Codebeispiel wird eine Variable mit dem Namen zahl deklariert und mit dem Wert 10 initialisiert, sprich der Wert 10 wird in der Variable zahl gespeichert.

Nun folgt die if-Anweisung.

Es wird überprüft, ob die Bedingung wahr ist. In diesem Fall steht dort zahl > 5, es wird geprüft, ob der Wert der Variablen Zahl größer als 5 ist.

Bedingungen enthalten Vergleichsoperatoren, logische Operatoren (Boole’sche Operatoren), wie and, or oder not und weitere Operatoren, auf die ich in diesem Beitrag nicht weiter eingehen werde.

In unserem Beispiel ist die Bedingung zahl > 5 wahr, also wird der Code ausgeführt, der innerhalb des if-Blocks eingerückt steht.

Auf der Console erscheint:

Ja, die Zahl ist größer fünf!

Was passiert, wenn die Bedingung nach dem Wort if nicht erfüllt ist?

Ist die Bedingung nach dem Wort if nicht erfüllt, also hat der Ausdruck vor dem Doppelpunkt den Wert False, dann wird der komplette if-Block übersprungen. Also alles, was unmittelbar nach der if-Anweisung eingerückt wurde, wird übersprungen.

In unserem Fall kommt danach kein weiterer Code, es passiert – nichts.

Du kannst parallel hier einen Code-Editor öffnen und selbst ausprobieren, was passiert, wenn du den Code eingibst.

Ändere doch mal in der ersten Zeile den Code zu zahl = 1 und schaue, was dann passiert.


Beispiel 2 – if-Anweisung in Python mit else-Block

In unserem vorherigen Beispiel wurde eine Bedingung überprüft und, wenn diese falsch war, ist nichts weiter passiert.

Es gibt allerdings noch den Ausdruck else, mit dem du einen Codeblock ausführen lässt, falls keine der vorangegangenen Bedingungen wahr ist.

Allgemein sieht der Code dann so aus.

if [Bedingung]:
    [Anweisung(en)]
else:
    [Anweisung(en)]

Achtung: Das Wort else muss direkt unterhalb des Wortes if stehen, also nicht noch weiter eingerückt.

Nehmen wir unser einfaches Beispiel von weiter oben. Es soll überprüft werden, ob eine Zahl größer als 5 ist.

Nun erweitern wir den Code und nehmen als Beispiel eine Zahl kleiner als 5. Wenn die Bedingung zahl > 5 NICHT erfüllt ist, dann wollen wir dem Benutzer dies auf der Console anzeigen.

Der erweiterte Code lautet:

zahl = 3
if zahl > 5:
    print("Ja, die Zahl ist größer fünf!")
else:
    print("Nein, die Zahl ist kleiner oder gleich fünf!")

Auf der Console erscheint:

Nein, die Zahl ist kleiner oder gleich fünf!

Wenn die Bedingung wahr ist, werden die Zeilen, die nach der if-Zeile eingerückt stehen, ausgeführt.

Wenn die Bedingung falsch ist, so wird der if-Block übersprungen und die Zeilen ausgeführt, die nach dem else-Ausdruck eingerückt stehen.

Merke:

  • Ein eingerückter if-Block wird nur dann ausgeführt, wenn die Bedingung in der Zeile davor mit der if-Anweisung wahr ist.
  • Entweder es wird der if-Block ausgeführt ODER der else-Block. Der if-Block, wenn seine Bedingung erfüllt ist und der else-Block in allen anderen Fällen.
  • Der else-Block ist nicht verpflichtend. Er ist aber eine gute Möglichkeit sicherzustellen, dass der Code und die verschiedenen Alternativen klar strukturiert sind.

if-Anweisung in Python mit mehreren Bedingungen – elif (else if)

Jedoch geht es noch einen Schritt weiter. Es kann sein, dass es nicht nur zwei, sondern mehrere Alternativen gibt, die zum Kontrollfluss des Programms dienen.

Hier kommt der elif-Ausdruck ins Spiel. In Python ist elif die Abkürzung für else if.

Wir verwenden diesen, wenn wir mehrere Bedingungen zu überprüfen haben.

Allgemein sieht der Python-Code mit mehreren Alternativen folgendermaßen aus:

if [Bedingung 1]:
    [Anweisung(en)]
elif [Bedingung 2]:
    [Anweisung(en)]
...
else:
   [Anweisung(en)]

Wichtig:

  • Wie oben erwähnt, ist der letzte else-Block keine Pflicht. Es ist aber gut ihn zu benutzen, damit auf jeden Fall etwas passiert, falls alle if und elif-Überprüfungen falsch sind und somit übersprungen werden.
  • Du kannst beliebig viele elif-Blöcke einschieben. Das soll durch die Punkte … oben verdeutlicht werden. Allerdings gibt es in jeder if-Anweisung in Python immer nur einen if-Block und genau einen else-Block.
  • Die Bedingungen werden nacheinander überprüft. Sobald eine Bedingung wahr ist, werden alle anderen Blöcke übersprungen. Darauf muss man achten!

Schauen wir uns auch zu den elif-Ausdrücken ein Beispiel an.


Beispiel 3: Verschiedene alternative Bedingungen mit elif überprüfen

Nehmen wir uns ein Programmcode, der überprüfen soll, ob eine Zahl positiv, negativ oder gleich null ist.

Offensichtlich haben wir es hier mit drei verschiedenen Möglichkeiten zu tun.

So sieht der Code für dieses Beispiel möglicherweise aus:

zahl = int(input("Bitte geben Sie eine ganze Zahl ein!"))
if zahl == 0:
    print("Die Zahl ist null!")
elif zahl > 0:
    print("Die Zahl ist positiv!")
else:
    print("Die Zahl ist negativ!")

In diesem Codebeispiel wird der Benutzer mithilfe der input-Funktion aufgefordert, eine Zahl einzugeben.

Der Wert dieser Eingabe wird in der Variablen zahl gespeichert.

Anschließend wird überprüft, ob diese Zahl genau den Wert Null hat. Wenn ja, wird der Satz „Die Zahl ist null!“ auf der Console ausgegeben.

Ist dies nicht der Fall, dann springt Python zum nächsten Block, hier mit elif eingeleitet. Nun wird überprüft, ob die Zahl positiv ist.

Ist das der Fall, wird der Satz „Die Zahl ist positiv!“ ausgegeben.

Und wenn beide vorherigen Prüfungen fehlgeschlagen sind, dann wird der Satz „Die Zahl ist negativ!“ ausgegeben.

So sieht das Ganze auf der Console aus:

Bitte geben Sie eine ganze Zahl ein! 42
Die Zahl ist positiv!

Natürlich hätte ich anstatt 42 auch jede andere ganze Zahl eingeben können.

Logikfehler bei if-Anweisungen vermeiden

Achtung, nicht immer werden durch die if und elif-Blöcke wirklich alle Alternativen abgedeckt.

In unserem vorherigen Beispiel war es völlig in Ordnung bei dem letzten Teil mit else einfach den Satz „Die Zahl ist negativ!“ auszugeben.

Durch die erste Zeile mit dem Code int(input(…)) wurde bereits sichergestellt, dass nur ganze Zahlen in den if und elif-Blöcken überprüft werden.

Natürlich gibt es nur genau drei Möglichkeiten für das Vorzeichen von ganzen Zahlen. Sie sind positiv, negativ oder null.

Dies muss man sich aber im Vorfeld ganz genau überlegen, damit am Ende kein Logikfehler dazu führt, dass ein Error entsteht oder einfach gar nichts passiert.


Verschachtelte Abfragen mit if-Anweisungen in Python

In manchen Fällen könnte es sein, dass gewisse Bedingungen nur überprüft werden müssen, wenn bereits andere Bedingungen erfüllt sind.

Hört sich vielleicht kompliziert an, aber was ich meine ist, es gibt Situationen in denen benötigst du if-Anweisungen innerhalb von if-Anweisungen.

Man spricht auch von Verschachtelung in diesem Kontext.


Beispiel 4 – Verschachtelte if-Anweisung mit Unterblöcken

Schau dir den folgenden Code genau an. Unter welchen Voraussetzungen an die Variablen miete und quadratmeter wird der Satz „Die Miete Ihrer Wohnung scheint angemessen.“ ausgegeben?

miete = int(input("Bitte geben Sie Ihre Kaltmiete in Euro ein!"))
quadratmeter = int(input("Bitte geben Sie die Quadratmeterzahl Ihrer Wohnung ein!"))
if miete > 500:
    if quadratmeter <= 40:
        print("Ihre Wohnung ist zu teuer!")
    else:
        print("Die Miete ihrer Wohnung scheint angemessen.")
else:
    print("Schätzen Sie sich glücklich, ihre Miete ist niedriger als ein    durchschnittliches WG-Zimmer.")

Wir haben es hier mit zwei Variablen zu tun. Zum einen wird vom Benutzer eine Miete eingegeben und zum anderen eine Quadratmeterzahl.

Natürlich lässt sich nicht pauschal sagen, dass eine Miete von 500 € hoch ist. Wenn es sich dabei um eine sehr große Wohnung handelt, so kann man diesen Wert auch als niedrig einstufen.

(Ich weiß, Mietpreise sind ein heikles Thema und in vielen Städten leider viel zu hoch. Entschuldigt bitte meine Themenwahl, ich wollte nur ein Beispiel machen. 🙃)

Der Code überprüft also zuerst, wie hoch die Miete ist. Wenn diese einen Wert größer als 500 € aufweist, dann wird die zweite if-Anweisung ausgeführt.

Diese überprüft dann, ob die Fläche der Wohnung in Quadratmetern kleiner oder gleich 40 beträgt. Wenn dies auch der Fall ist, nur dann wird der Satz „Ihre Wohnung scheint zu teuer!“ ausgegeben.

Ich hoffe, der Code von verschachtelten if-Anweisungen wurde damit klarer.

In meinem Newsletter versende ich jeden Monat ein paar Übungsaufgaben, trag dich ein, falls du solche und ähnliche Themen noch verstärkt üben möchtest.



Danke fürs Lesen und lass mir gerne einen Kommentar da, falls du noch Fragen hast oder Wünsche für weitere Themen, die ich behandeln soll!

Hier findest du alle meine Blogartikel, die ich zum Thema Programmieren mit Python bisher verfasst habe.

Für dich vielleicht ebenfalls interessant...

1 Kommentar

  1. Uwe sagt:

    Hallo!
    Ich finde Eure Seite wirklich Klasse! Gut erklärt gerade für Einsteiger wie mich. Die Aufgaben führen einen dann an das jeweilige Thema heran und die Lösungen helfen einem weiter, wenn man mal wieder den Wald vor lauter Bäumen nicht sieht. Manches kann so einfach sein!
    Vielen Dank!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert