Der Python-Kurs: if-Bedingung
Willemers Informatik-Ecke
Variablen und Anweisungen Python-Kurs Schleife while

Inhalt dieser Seite

Abfrage if

Ein Programm muss auf Bedingungen reagieren können. So sollte beispielsweise eine Division durch 0 tunlichst vermieden werden. Python bietet für diese Zwecke den Befehl if an.

Auf den Befehl if folgt immer eine Bedingung und ein Doppelpunkt.

if nenner != 0:

Damit ist die Abfrage eingeleitet. Anschließend werden die Anweisungen, die nur unter dieser Bedingung laufen sollen, eingerückt. Wie groß die Einrückung ist, ist eigentlich egal, man verwendet aber gern vier Leerzeichen.

if nenner != 0:
    quotient = zaehler / nenner
Dabei bleiben alle folgenden Befehle unter der Bedingung, solange die Einrückung in der gleichen Tiefe eingehalten wird.

Andernfalls else

An den Befehl if kann hinter die eingerückten Zeilen der Befehl else gesetzt werden. Dieser behandelt dann den umgekehrten Fall. Beispielsweise könnte er eine Fehlermeldung ausgeben und die Variable auf 0 setzen.
if nenner != 0:
    quotient = zaehler / nenner
else:
    print("Division durch 0!")
    quotient = 0
In manchen Fällen gibt es aber mehr als zwei Fälle, beispielsweise, wenn ein Fahrstuhl für jedes Stockwerk einen anderen Text ausgeben soll. Oder wenn Sie untersuchen wollen, ob eine Zahl positiv, negativ oder 0 ist. Das könnten Sie einfach realisieren, in dem Sie hinter dem Befehl else ein neues if aufsetzen.
if x>0:
   print("Die Zahl ist positiv")
else
   if x==0:
       print("Die Zahl ist 0")
   else:
       print("Die Zahl ist negativ")

Andernfalls wenn: elif

Python stellt aber eine Kombination von else und if in Form des Befehls elif zur Verfügung. Das erspart das sehr weite Einrücken, das bei einem Fahrstuhl mit 50 Stockwerken erforderlich wäre.
if x>0:
   print("Die Zahl ist positiv")
elif x==0:
   print("Die Zahl ist 0")
else:
   print("Die Zahl ist negativ")

Der Befehl pass

Der Befehl pass tut nichts und kann darum sehr gut eingesetzt werden, wenn eine Einrückung erforderlich ist, aber die Implementierung noch fehlt.
if x==0:
    pass

Boolesche Ausdrücke

Die Literale der booleschen Ausdrücke sind True und False. Die Großbuchstaben sind wichtig und eine leichte Fehlerquelle, weil andere Programmiersprachen beides gern kleinschreiben.

Boolesche Werte können natürlich auch in Variablen gespeichert werden. Ihr Typ ist bool.

Die mathematischen Operatoren wurden schon erwähnt:

!= ungleich
== gleich
< kleiner
> größer
<= kleiner oder gleich
>= größer oder gleich

String-Vergleiche

Auch Zeichenketten können auf Gleichheit verglichen werden. Mit Größer- und Kleinerzeichen können Sie auch die alphabetische Reihenfolge ermitteln, also Zeichenketten vergleichen. Allerdings wird die Reihenfolge durch die interne Zeichenkodierung bestimmt. Nach dieser sind Großbuchstaben kleiner als Kleinbuchstaben, sodass überraschenderweise Zitrone vor ananas einsortiert wird.

Für Zeichenketten gibt es mit in eine besonderen Operator, der prüft, ob eine Zeichenkette in einer anderen Zeichenkette enthalten ist.

if "sen" in Name:
    print("Norddeutscher Adel")

Komination boolescher Ausdrücke

Boolesche Ausdrücke können kombiniert werden:

Nicht nur True, sondern alle Werte ungleich 0 werden als True betrachtet. Dagegen werden None, die leere Liste [], das leere Tupel () oder 0 als False behandelt. Lassen Sie sich nicht verwirren. Diese Begriffe werden Sie noch kennenlernen.

Bei Prüfung von and und or wird die Auswertung abgebrochen, sobald das Ergebnis sich nicht mehr ändern kann. Bei and wird beim ersten falschen Ausdruck der Gesamtausdruck False. Bei or wird beim ersten wahren Ausdruck der Gesamtausdruck True. Man spricht auch vom logischen Kurzschluss.

Übungsaufgaben

Schaltjahr berechnen

Alle vier Jahre gibt es ein Schaltjahr, also in jedem Jahr, das durch 4 teilbar ist. Dazu ist es hilfreich, wenn man sich errinnert, dass ein doppelter Schrägstrich eine ganzzahlige Division ist oder dass das Prozentzeichen für Modulo, also den Rest einer ganzzahligen Division steht.

Es gibt da noch eine weitere Regel: Alle Jahre, die durch 100 teilbar sind, sind keine Schaltjahre.

Allerdings sind alle Jahre, die durch 400 teilbar sind, wieder Schaltjahre.

Schreiben Sie also ein Programm, dass anhand der Jahreszahl ermittelt, ob es ein Schaltjahr ist.

Maximum

Schreiben Sie ein Programm, das drei Variablen a, b und c miteinander so vergleicht, dass der maximale Wert angezeigt wird. Versuchen Sie mit drei if-Anweisungen und ohne and-Verknüpfung auszukommen.

Body Mass Index BMI

Wer seinem Body-Shaming gern Zahlen zugrunde legt, kann den BMI zu Rate ziehen. Der BMI ist eine Zahl, die sich aus dem Gewicht ergibt, das durch das Quadrat der Größe ergibt.

Der BMI kann folgenden Texten zugeornet werden:

BMI Bedeutung
kleiner als 10 nicht überlebensfähig
kleiner als 12 lebensbedrohlich
kleiner als 16 muss stationär behandelt werden
kleiner als 19 Untergewicht
kleiner als 25 Normalgewicht
kleiner als 30 Übergewicht
kleiner als 35 Adipositas Grad I
kleiner als 40 Adipositas Grad II
ab 40 Adipositas Grad III
Schreiben Sie ein Programm, das aus Größe und Gewicht den BMI ermittelt, diesen ausgibt und anschließend dessen Bedeutung ausgibt.


Der Kurs geht weiter mit der Schleife while.