Python3 – Teil 4 If else elif
Erwartete Lesezeit: 2 minuten
Wie in jeder anderen Programmiersprachen werden if Anweisungen zum Test von Bedingungen und der Reaktion auf das Prüfungsergebnis genutzt.
Auch in Python werden die arithmetischen Vergleichsoperatoren unterstützt :
Beschreibung | Operator |
---|---|
Gleichheit | == |
kleiner als | < |
kleiner oder gleich als | <= |
größer | > |
größer oder gleich als | >= |
Ungleichheit | != |
Neben diesen Standardoperatoren gibt es zum “Suchen” in Listen noch den “in” und zur Prüfung, ob ein Eintrag nicht in einer Liste ist “not in” Operator.
Hier ein paar Beispiele
Einfaches If :
Wenn das Alter kleiner gleich 17 ist , dann gibt eine Meldung aus.
if alter <=17: print('Du kommst hier nicht rein')
Einfaches If Else Beispiel :
Wenn Alter < 18 , dann Lieblinksgetränk ist Milch, ansonsten Whisky.
if alter < 18: lieblingsgetraenk = 'Milch' else: lieblingsgetraenk = 'Whisky'
Natürlich gibt es kompliziertere Beispiele :
Wenn Alter < 16 , dann Lieblinksgetränk ist Milch. Wenn Alter >=16 aber < 18 dann Bier ansonsten Whisky. Also eine klassische If ElseIf Else abfrage. Da Wir in Python aber auf gut lesbaren Code stehen , heißt bei uns das ElseIf nicht ElseIf sondern ElIf.
if alter >= 18: lieblingsgetraenk = 'Whisky' elif alter >= 16: lieblingsgetraenk = 'Bier' else: lieblingsgetraenk = 'Milch'
Wie Ihr sicherlich schon gemerkt habt, sind in Python die Blöcke mit der Logik nicht wie in anderen Sprachen durch geschweifte Klammern gekapselt , sondern durch Einrückungen.
Dabei ist es egal , wie viele Anweisungen ausgeführt werden sollen :
if alter < 18: lieblingsgetraenk = 'Milch' lieblingsfarbe = 'blau' else: lieblingsgetraenk = 'Whisky' lieblingsfarbe = 'rot'
Auf der einen Seite erleichtert diese Schreibweise die Lesbarkeit , ist aber auch eine leichte Fehlerquelle, da bereits eine Verschiebung um ein Zeichen , dem Interpreter Probleme bereitet.
Zu guter Letzt noch ein ein Beispiel für die Abfrage in Listen :
x = ['Hund','Katze','Maus'] if 'Katze' in x: print('Mensch , das gibt Ärger')