If-Anweisungen in Python

1. Einführung

If-Anweisungen sind Verzweigungen, an denen sich das Programm in verschiedene Handlungsstränge aufteilt, die abhängig von einer bestimmten Bedingung ausgeführt oder nicht ausgeführt werden. Dadurch bist du in der Lage, komplexe Probleme mithilfe eines Programms abzubilden und zu lösen.

In meinem Video aus der Reihe "alle Programmiersprachen lernen" habe ich das Konzept der if-Anweisungen allgemein erklärt. Wir werden dieses Konzept nun konkret anhand der Programmiersprache Python nachvollziehen.


2. If-Anweisungen in Python

Wir betrachten parallel zur Implementierung einer if-Anweisung in Python die allgemeine Darstellung der if-Anweisung, damit du erkennst, wie nahe die Python-Syntax an diesem Bauplan ist:

IF Bedingung
THEN Anweisungen
ELSE Anweisungen

In Python verwendet man zum Einleiten einer if-Anweisung das Schlüsselwort if

if

Dahinter wird eine Bedingung geschrieben. 

if bedingung

Die Bedingung schließt mit einem Doppelpunkt. 

if bedingung:

Wenn die Bedingung zutrifft (der Wahrheitswert dieses Ausdrucks also True ist), wird der nun folgende Anweisungsblock ausgeführt.

if bedingung:
   erste_anweisung
   zweite_anweisung
   dritte_anweisung

Der beim Booleanwert True für die Bedingung ausgeführte Anweisungsblock läuft bis zum Schlüsselwort else. 

if bedingung:
   erste_anweisung
   zweite_anweisung
   dritte_anweisung
else

Alle Anweisungen, die im if-Zweig ausgeführt werden sollen, werden mit einem Tab eingerückt. Alle nicht eingerückten Anweisungen werden nicht ausgeführt und führen potentiell zu Fehlern.

Wenn kein else vorhanden ist, läuft er bis vor die erste Codezeile, die nicht mehr eingerückt ist. Deshalb solltest du beim Programmieren in Python immer darauf achten, dass die Codezeilen korrekt eingerückt sind. Ansonsten ist nicht gewährleistet, dass dein Programm korrekt ausgeführt wird.
Hinter das Schlüsselwort else wird ebenfalls ein Doppelpunkt gesetzt.
if bedingung:
   erste_anweisung
   zweite_anweisung
   dritte_anweisung
else:

Danach folgen die Anweisungen, die im Fall, dass die Bedingung nicht zutrifft (der Wahrheitswert dieses Ausdrucks ist dann False), ausgeführt werden.

if bedingung:
   erste_anweisung
   zweite_anweisung
   dritte_anweisung
else:
   vierte_anweisung

Ein ENDIF zum Abschließen der if-Anweisung ist in Python nicht  notwendig.

Angenommen dass wir bei einem negativen Kontostand arbeiten gehen und uns ansonsten ausruhen. Wie können wir das in Python syntaktisch abbilden?

Zunächst leiten wir den Code mit dem Schlüsselwort if ein und schreiben dahinter die Bedingung "kontostand < 0".

if kontostand < 0

Die Bedingung wird mit einem Doppelpunkt abgeschlossen.

if kontostand < 0:

Nun werden die einzelnen Anweisungen eingerückt unter die erste Zeile geschrieben. In diesem Fall gibt es nur eine Anweisung, nämlich die Aktion arbeiten( ):

if kontostand < 0:
   arbeiten()

Danach wird der if-Zweig mit dem Schlüsselwort else beendet, da wir eine Handlungsalternative für den Fall, dass das Konto gedeckt (also der Konstostand größer als oder gleich 0) ist vorgesehen haben, nämlich Ausruhen.

if kontostand < 0:
   arbeiten()
else:

Jetzt wird wieder mit einem Tab eingerückt eine Aktion vorgesehen, nämlich ausruhen( ).

if kontostand < 0:
   arbeiten()
else:
   ausruhen()

Der else-Zweig bzw. das Schlüsselwort else sind nur dann nötig, wenn auch wirklich eine alternative Handlung gewünscht ist, falls die Bedingung False sein sollte. Lässt man den else-Zweig weg, würde man nur im Fall, dass der Kontostand negativ ist, arbeiten und ansonsten einfach nichts machen bzw. im Programmverlauf weiter fortschreiten.


3. Verschachtelte if-Anweisungen in Python

Für verschachtelte if-Anweisungen ist in Python das Schlüsselwort elif vorgesehen, das ein Kofferwort aus else und if ist. Wenn wir für eine Videospielfigur einen Controller programmieren wollen, der beim Drücken bestimmter Tasten unterschiedliche Aktionen ausführt, können wir das mit einer verschachtelten if-Anweisung lösen.

Die gedrückten Tasten können wir z. B. mit Strings kodieren. Theoretisch müssten wir auch noch definieren, wo die Tastenanschläge herkommen usw., doch wir beschränken uns in diesem Artikel darauf, die Syntax von Python zu erlernen.

Beginnen wir also mit dem Formulieren der ersten Bedingung:

if taste == "rechts":

Wenn also die gedrückte Taste die rechte Taste ist, dann soll der Spieler nach rechts laufen:

if taste == "rechts":
   nach_rechts_gehen()

Und genau diesem Gerüst folgend werden jetzt die übrigens Fälle (links, unten, oben) implementiert.

Wenn man elif verwenden möchte, muss man direkt hinter das Schlüsselwort eine weitere Bedingung definieren und diese ebenfalls mit einem Doppelpunkt abschließen.

if taste == "rechts":
   nach_rechts_gehen()
elif taste == "links":
   nach_links_gehen()
elif taste == "unten":
   ducken()
else:
   springen()

Am Ende der if-Kaskade steht ein else anstelle des elifs. Das bedeutet, dass wenn weder nach rechts, nach links noch nach unten gedrückt wird, dass dann immer nach oben gesprungen wird, da alle

vorherigen Fälle nicht erfüllt wurden. Möchte man hingegen, dass keine Aktion ausgeführt wird, wenn keine der Tasten gedrückt wurde (auch nicht die Taste "Oben"), dann muss man im letzten else-Block

auch ein elif verwenden. Dann wird diese Bewegung tatsächlich auch erst ausgeführt, sobald jemand die Taste "Oben" drückt. Auf diese Art und Weise kann man beliebig viele weitere Tastenbelegungen

implementieren.

if taste == "rechts":
   nach_rechts_gehen()
elif taste == "links":
   nach_links_gehen()
elif taste == "unten":
   ducken()
elif taste == "oben":
   springen()