Hier erklären wir Dir, was die Python if-Bedingung ist. Dabei handelt es sich um die einfachste Kontrollstruktur dieser Coding-Sprache. Kontrollstrukturen sind das Salz in der Code-Suppe. Denn sie ermöglichen Wiederholungen, Auslassungen oder bedingte Sprünge zu anderen Codeteilen und sind daher so etwas wie die Logik-Bausteine Deines Programms.
Mit der if-Bedingung in Python Verzweigungen erstellen
Die if-Bedingung in Python ist eine der elementarsten Aktionen, die man durchführen kann. Hiermit lassen sich nämlich Entscheidungen treffen, die in der Ausführung dann zum Durchlaufen eines alternativen Programmzweigs führen. Man kann das Prinzip auch so zusammenfassen: “Wenn dies, dann mach das”.
Das sieht in Python dann folgendermaßen aus:
Hinter dem Schlüsselwort if folgt die Bedingung. Dabei muss es sich um einen sogenannten booleschen Ausdruck handeln, also einen Ausdruck, der zu dem Ergebnis True oder False führt. Oft sind das Vergleiche oder Aufrufe von Funktionen, die einen Boolean zurückliefern. Hinter diesem Ausdruck steht ein Doppelpunkt. In der nächsten Zeile befindet sich der Code, der ausgeführt wird, wenn der Boolean den Wert True liefert. Dieser Code kann sich auch auf mehrere Zeilen erstrecken. An der gleichen Einrücktiefe erkennt Python, dass diese Zeilen ebenfalls ausgeführt werden sollen. Mehr zum booleschen Ausdruck erfährst Du übrigens auf der Seite der Universität Düsseldorf.
Liefert das Ergebnis hingegen den Wert False, überspringt das Programm die eingerückten Zeilen. Die nächste Anweisung ist dann wie die Bedingung eingerückt, steht also genau linksbündig darunter.
Ein Beispiel
Am besten schauen wir uns zur if-Bedingung in Python ein konkretes Beispiel an. Der folgende Code liest Zahlen von der Tastatur ein und gibt jedes Mal eine Meldung aus, wenn die Eingabe durch 3 teilbar ist:
Um das Beispiel auszuführen, kannst Du Python Entwicklungsumgebungen nutzen. In der Entwicklungsumgebung Thonny beendest Du die Endlosschleife dabei einfach mit dem Stop-Button:
Die Überprüfung der Zeichen erfolgt in Python mit einer if-Bedingung, welche int(zahl) % 3 == 0 lautet. Das eingegebene Zeichen wird zunächst in einen Integer, also eine Zahl, umgewandelt. Auf diesen wird dann der Modulo-Operator % mit 3 angewandt, welcher prüft, ob die Zahl durch eine andere ohne Rest teilbar ist. Sofern das der Fall ist, liefert der Modulo-Operator den Wert 0. Wenn also der Rest der Division 0 ist, ist die Anweisung erfüllt und die Zeile mit der Ausgabe wird aufgerufen.
Vielleicht Hast Du Lust, das Beispiel noch etwas zu erweitern. Wie wäre es mit einer zweiten if-Anweisung, die eine Meldung bei geraden Zahlen ausgibt? Wie erkennt man überhaupt gerade Zahlen in Python?
Die Alternative zur if-Anweisung: else
In Python ist die if-Bedingung die einfachste Variante einer Anweisung. Sie sieht auch eine Möglichkeit vor, Code auszuführen, wenn die Bedingung NICHT erfüllt ist. Das geschieht mit else, das auf Deutsch anderenfalls bedeutet:
Wenn man die eingegebene Zahl ohne Rest durch 3 teilen kann, wird das erste Print ausgeführt, andernfalls das in der letzten Zeile. Auch hier kannst Du wieder mehrere Zeilen durch gleiche Einrücktiefe ausführen.
Mehrere Bedingungen: elif
Oft sollen gleich mehrere Bedingungen überprüft werden, für die ein gemeinsamer else-Zweig gilt. Das lässt sich mit dem Schlüsselwort elif realisieren. Hierbei ist elif eine Mischung aus else und if. Wenn das vorherige Ergebnis False war (dafür steht das el von elif), aber das hinter elif formulierte zutrifft (das ist das if von elif), wird der darunter eingerückte Code ausgeführt:
Es kann beliebig viele elif-Bedingungen geben, aber immer nur ein if und ein else in einem Block. Das else kommt nur zum Einsatz, wenn keine der Bedingungen davor, egal ob if oder elif, zutrifft.
Das folgende Codestück zeigt ein Anwendungsbeispiel:
In der Praxis definierst Du den error_code jedoch in der Regel nicht als erste Zeile. Denn dann hätte man den zugehörigen Text ja auch gleich in Python Variablen schreiben können.
if-Bedingungen in Python verschachteln
Ebenso wie die Python for Schleife kannst Du auch if-Anweisungen verschachteln. Die eingerückten Anweisungen unter der Bedingung enthalten dann wiederum einen if-Ausdruck. Verschachtelte if-else-Bedingungen gehören beim Coding zu gefährlichen Fehlerquellen für Einsteiger. Das folgende Listing in C verdeutlicht das Problem. Aufgrund der unglücklichen Einrückung könnte man annehmen, dass das (einzige) else zum äußeren if gehört und der else-Zweig bei a ungleich 1 ausgeführt wird. Das ist aber nicht der Fall, es handelt sich aufgrund der Syntax um den else-Zweig des inneren if-Ausdrucks. Er wird deshalb ausgeführt, wenn a 1 ist und b ungleich 1.
Das Problem löst man in Java oder C, indem man geschweifte Klammern verwendet, um die von einer if-Bedingung betroffenen Zeilen zu definieren. In der Python Syntax tritt das Problem dank der Zwangseinrückungen gar nicht erst auf:
Die Einrückungen von if und else, die in Python, anders als in C oder Java, kein schmückendes Beiwerk, sondern Teil der Sprache sind, ordnen Blöcke klar zu. Dadurch ist Python für Neulinge leicht zu verstehen.
Operatoren für Vergleiche
Bei if-Bedingungen handelt es sich oft um Vergleiche. In Python vergleicht man Zahlen mit den folgenden Operatoren:
- gleich: ==
- ungleich: !=
- größer: >
- kleiner: <
- größer oder gleich: >=
- kleiner oder gleich: <=
Python Strings und Booleans werden ebenfalls mit == und != verglichen. Es gibt also kein equals() wie in anderen Sprachen. Das folgende Codestück zeigt 3 verschiedene Varianten von Bedingungen:
Die erste Bedingung (zeichen == “exit”) ist ein String-Vergleich mit ==. Wenn die Zeichenketten gleich sind, ergibt sich ein True und die if-Bedingung ist erfüllt. Die nächste Bedingung (zeichen.isdigit()) ist ein Methodenaufruf einer String-Methode. Die Methode prüft, ob es sich um eine Zahl handelt und gibt einen entsprechenden Boolschen Wert zurück. Du kannst sie deshalb direkt verwenden und musst das Ergebnis nicht extra einer Variablen zuweisen. Die letzte Bedingung dagegen arbeitet mit einer explizit angelegten boolschen Variable.
Die Codebestandteile if und else gehören zu den grundlegenden Werkzeugen eines jeden Entwicklers. Und Du kennst Dich jetzt richtig gut damit aus! Falls Du schon mit der Python while Schleife vertraut bist, kommt Dir sicher einiges davon bekannt vor. Auch bei dieser Kontrollstruktur geht es um Bedingungen und Einrückungen. Weitere IT-Grundlagen lernst Du übrigens in unserem Computerkurs.
FAQs – if-Bedingung in Python
Diese Anweisung prüft, ob eine definierte Bedingung erfüllt ist und führt, sofern sie erfüllt ist, einen Codeblock aus.
Der else-Block kommt zum Einsatz, wenn if nicht erfüllt ist. Den Begriff else kann man dabei mit dem deutschen Wort „anderenfalls“ übersetzen.
Nein, in einen Code-Block kann man nur jeweils eine if- und eine else-Anweisung integrieren.