Der leichte Einstieg Scratch programmieren
Faszination Coding Programmieren für Kinder
Für Fortgeschrittene Python Kurs

Die Python if-Bedingung

Veröffentlicht: . Geändert: .
if-Bedingung in Python: Erklärung

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:

if-Bedingung in Python: Aufbau

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:

if-Bedingung in Python: Teilbarkeit

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 if-Bedingung ist erfüllt
Abb. 1: Die Ausgabe erfolgt nur, wenn die if-Bedingung erfüllt ist

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:

Die else-Bedingung

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:

Die Anweisung elif

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:

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.

Bedingungen verschachteln

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:

Einrückungen in Python

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:

Vergleiche aufstellen

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

Was macht die 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.

Wann wird die else- und wann die if-Anweisung verwendet?

Der else-Block kommt zum Einsatz, wenn if nicht erfüllt ist. Den Begriff else kann man dabei mit dem deutschen Wort „anderenfalls“ übersetzen.

Kann ein Code-Block mehrere if-Bedingungen enthalten?

Nein, in einen Code-Block kann man nur jeweils eine if- und eine else-Anweisung integrieren.

Anderen hat auch das noch gefallen