»if« – »else« im Überblick
Nach if steht immer eine Bedingung, und es wird geprüft, ob diese Bedingung wahr ist. Beim Programmieren gibt es keine Halbwahrheiten. Entweder eine Bedingung ist wahr, oder sie ist falsch. Bedingungen, die man prüfen kann, sind aber nicht nur gleiche Zahlenwerte. Man kann Zahlen wie Zeichen auf Gleichheit, Ungleichheit, größer oder kleiner prüfen.
Beispiele:
if x == 3: | prüft, ob x gleich 3 ist |
if x != 3: | prüft, ob x ungleich drei ist (also nicht 3) |
if x > 5: | prüft, ob x größer als 5 ist |
if x < 9: | prüft, ob x kleiner als 9 ist |
if x <= 7: | prüft, ob x kleiner oder gleich 7 ist |
if x >= 2: | prüft, ob x größer oder gleich 2 ist |
Das geht natürlich nicht nur mit Zahlen, sondern auch mit Zeichenketten:
if name == "Otto": | prüft, ob name gleich »Otto« ist |
if "Otto" > "Erwin": | prüft, ob der Text "Otto" größer als der Text "Erwin" ist – ob er also weiter hinten in alphabetischer Sortierung steht |
Eine Bedingung, die mit if geprüft wird, nennt man auch eine logische Aussage, die immer entweder wahr (True) oder falsch (False) ist, zum Beispiel:
-
5 > 3 ist zum Beispiel eine wahre Aussage (True).
-
5 == 7 ist zum Beispiel eine falsche Aussage (False).
Man kann diese Überprüfungen auch in eine Variable schreiben:
bedingung = (5 > 3)
print bedingung
Das ergibt als Ausgabe:
True
Wenn du True oder False in einem Programm als Wert verwendest, müssen beide immer mit großem Anfangsbuchstaben geschrieben werden.
Ebenso kann man statt des Vergleichs selber eine Variable, die True oder False enthält, mit if abfragen:
if bedingung == True:
Oder noch einfacher:
if bedingung:
[+] Wahrheitsaussage als Variablenwert
Hinter dem if steht immer eine Aussage, die wahr (True) oder falsch (False) ist. Wenn aber eine Variable den Wert wahr oder falsch enthält, kann man auch diese hinter das if schreiben, dann ist die Variable eine Aussage, die wahr oder falsch ist (man nennt das auch eine Boolesche Variable, die nur einen von zwei Werten enthalten kann, True oder False).
x = input("Gib eine Zahl größer als 5 ein:")
aussage = (x > 5)
if aussage:
print "Korrekt - die Zahl ist über 5."
if aussage == False:
print "Falsche Eingabe"
Übrigens: Der Wert False entspricht in Python dem Wert 0, der Wert True entspricht dem Wert 1 oder jeder anderen Zahl außer 0.
Man kann also auch folgendermaßen abfragen:
x = input("Gib einen Wert ein:")
if x: # bedeutet: x ist True, also etwas anderes als 0
print "du hast etwas anderes als 0 eingegeben."
else: # bedeutet: x ist False, also 0
print "du hast den Wert 0 eingegeben."
Etwas trickreicher wird die Logik noch, wenn man mehrere Bedingungen miteinander verknüpft: