Skip to content

Bedingungen

Natürlich macht man nicht immer dasselbe im Program. Wir müssen also auf veränderte Situationen reagieren. Das geschieht mit Bedingungen. In Python gibt es dafür das Schlüsselwort if.

So kann z.B. ein Programm entscheiden, ob eine Zahl gerade oder ungerade ist:

value = 42
if value % 2 == 0:
    print("Die Zahl ist gerade.")
else:
    print("Die Zahl ist ungerade.")

Hier sieht man schon die allgemeine Syntax:

if (<condition>):
    <code_A>
else:
    <code_B>

Python prüft also die Bedingung (condition) in den Klammern. Wenn sie wahr ist, wird <code_A> ausgeführt, ansonsten <code_B>.

Mittels and und or lassen sich mehrere Bedingungen prüfen:

value = 42
if value % 2 == 0 or value > 10:
    print("Die Zahl ist gerade oder größer als 10.")

Die Bedingungen werden in diesem Fall nicht alle geprüft: sobald das Ergebnis feststeht, ist eine weitere Prüfung aus Effizienzgründen nicht mehr notwendig. Hier bedeutet das, dass die Zahl 42 gerade ist und die Prüfung auf value > 10 nicht mehr durchgeführt wird.

Jede Bedingung wird implizit in einen Wahrheitswert umgewandelt. Damit greifen auch wieder die Konvertierungsregeln, die wir bereits bei den Wahrheitswerten kennengelernt haben. Damit wäre folgendes äquivalent (wenngleich schwerer lesbar):

value = 42
if not value % 2 or value > 10:
    print("Die Zahl ist gerade oder größer als 10.")

Sollen Bedingen separat gepüft werden, so können wir elif verwenden:

value = 42
if value % 2 == 0:
    print("Die Zahl ist gerade.")
elif value > 10:
    print("Die Zahl ist größer als 10.")
else:
    print("Die Zahl ist ungerade und kleiner 10.")

Hier ist zu berücksichtigen, dass elif nur dann geprüft wird, wenn die vorhergehende Bedingung nicht zutrifft. Ist also value gerade, so wird nur ausgegeben, dass die Zahl gerade ist. Die Prüfung, ob sie auch größer als zehn ist, wird nicht mehr durchgeführt. Nur bei ungeraden Zahlen erfolgt diese Prüfung. Das finale else wird nur dann ausgeführt, wenn keine der vorhergehenden Bedingungen zutrifft.

Jede Bedingung benötigt mindestens eine Anweisung was passieren soll. Möchte man mehrere Arbeitsschritte durchführen, sofern eine Bedingung erfüllt ist, so kann man mehrere Zeilen einrücken:

value = 42
if value % 2 == 0:
    print("Die Zahl ist gerade.")
    print("Die Zahl ist gerade.")

Mehr dazu in dem Abschnitt zu Blöcken.