Wie viele Entscheidungen hast du heute schon getroffen? Gehirnforscher gehen davon aus, dass wir uns täglich bis zu 20.000 mal entscheiden müssen. Aufstehen – oder noch 5 Minuten liegen bleiben? Die blaue Jeans oder doch die graue Hose? Frühstück daheim oder auf dem Weg zur Arbeit / Uni?
Auch in Programmen ist es oft notwendig, verschiedene Optionen möglich zu machen. Wenn eine bestimmte Bedingung erfüllt ist, dann kann es auf einem bestimmten Wege weitergehen, sonst muss ein anderer Weg eingeschlagen werden. Zum Beispiel kann eine Nutzereingabe nur weiterverarbeitet werden, wenn es sich um eine Zahl zwischen 1 und 10 handelt, ansonsten muss dem Nutzer rückgemeldet werden, dass seine Eingabe nicht passend war.
In Python (genau wie in anderen Programmiersprachen) gibt es festgelegte Kontrollstrukturen, mit denen man den Ablauf eines Programmes gestalten kann. Verzweigungen werden mit Hilfe der if-Anweisung möglich gemacht.
Challenge
Schreibe ein Programm, indem überprüft wird, ob eine eingegebene Nummer positiv, negativ oder 0 ist.
Gut zu wissen…
Die Syntax einer if – else Anweisung in Python kann man leicht aus dem folgenden Beispiel erkennen: Die erste Bedingung (manchmal auch einzige) wird mit if und einer Bedingung eingeleitet. Ist die Bedingung wahr, so erfolgt die Ausführung einer oder mehrerer Anweisungen. Jede weitere Bedingung wird mit elif eingeleitet. Zum Schluss erfolgt mit else eine Angabe, was gemacht wird, wenn keine der zuvor abgefragten Bedingungen wahr ist. Bedingungen können geklammert werden, müssen aber nicht.
1 2 3 4 5 6 7 8 |
## check if number is greater than 42 x = 43 if (x < 42): print("Number is smaller") # statement will not execute elif(x==42): print("Number equals 42") else: print("Number is greater") |
Bedingungen
Die Auswertung einer Bedingung ergibt eine der beiden Boolean Werte False oder True. Oft enthalten die Bedingungen mathematische Vergleiche, teilweise mit etwas anderen Symbolen als aus der Mathematik bekannt. So wird Gleichheit statt mit einem “=” Zeichen mit “==” überprüft. Dies liegt daran, dass das “=” Zeichen in Python schon eine Verwendung hat, nämlich als Variablenzuweisung. Ungleichheit kann mit “!=” getestet werden. Mit Hilfe von “==” lassen sich nicht nur Zahlen auf Gleichheit überprüfen, sondern auch jeder andere Datentyp.
1 2 3 4 5 6 7 8 9 10 11 |
x=5 # Variablenzuweisung x==5 # True x!=5 # False x==5 and True # True # Beispiel für Überprüfung Gleichheit eines anderen Datentyps ein_text='hallo' noch_ein_text='hallo' ein_text==noch_ein_text # True # Randbemerkung: die beiden Variablen können, müssen aber nicht die # gleiche Identität haben. Dies wird bei Betrachtung der Objektorientierung in Python verständlich |
Conditional Expressions
Eine if-Anweisung lässt sich auch kompakt schreiben mit Hilfe eines ternären Operators. Dies spart einige Zeilen Code, die bei if-else Anweisungen anfallen. “Ternär” steht für dreierlei Input: if-then-else. In vielen Programmiersprachen gibt es für eine solche abgekürzte Schreibweise den Bedingungsoperator “?:”. In C würde die Abfrage und Zuweisung des kleineren Wertes a oder b beispielsweise wie folgt aussehen:
1 |
min = (a < b) ? a : b; |
In Python gibt es seit der Version 2.4 Conditional Expressions. Die Schreibweise ist allerdings etwas anders definiert:
1 |
min = a if (a < b) else b |
Pass Anweisung
Manchmal möchte man eine Bedingung angeben, ohne das etwas getan werden muss. In Python ist die Anweisung allerdings nicht optional, sondern syntaktisch erfordert. In diesem Fall kann man pass nutzen. Die pass Anweisung ist eine null Operation. Dies bedeuted das nichts passiert, wenn sie ausgeführt wird.
1 2 3 4 5 6 7 |
# Beispiel für eine pass Anweisung a = "Passwort" b = "passwort" if (a == b): pass else: print("Passwörter stimmen nicht überein!") |