Mehr Möglichkeiten: elif
Mit if und else wählt ein Programm zwischen zwei Möglichkeiten. Oft gibt es mehr. Ein Fußballspiel zum Beispiel endet auf drei Arten: Die Heimmannschaft gewinnt, die Gastmannschaft gewinnt, oder es gibt ein Unentschieden. Für mehr Möglichkeiten fügst du elif-Zweige mit jeweils eigener Bedingung hinzu. elif ist die Abkürzung für „else if“ („sonst wenn“):
tore_heim = 3
tore_gast = 2
if tore_heim > tore_gast:
print("Die Heimmannschaft hat gewonnen!")
elif tore_heim < tore_gast:
print("Die Gastmannschaft hat gewonnen!")
else:
print("Unentschieden!")Das gibt Folgendes aus:
Die Heimmannschaft hat gewonnen!Das Programm prüft die Bedingungen von oben nach unten und führt den Block der ersten wahren aus. Die übrigen Zweige überspringt es, auch wenn einige der späteren Bedingungen ebenfalls wahr sind. Nur wenn keine Bedingung wahr ist, wird der else-Block ausgeführt. Du kannst so viele elif-Zweige hinzufügen, wie du brauchst, immer zwischen dem if und dem else. Das else am Ende ist optional: Ohne es wird nichts ausgeführt, wenn keine Bedingung wahr ist.
Da die erste wahre Bedingung gewinnt, kommt es auf die Reihenfolge der Bedingungen an:
punkte = 95
if punkte >= 50:
print("Bestanden")
elif punkte >= 90:
print("Ausgezeichnet")Das gibt Folgendes aus:
Bestanden95 Punkte sind ein ausgezeichnetes Ergebnis, aber die erste Bedingung, punkte >= 50, ist schon wahr, deshalb kommt das Programm gar nicht bis zur zweiten. Setze die strengere Bedingung an den Anfang: punkte >= 90, dann punkte >= 50.
So schreibst du es:
Anweisungen
- 1
15 °C sind kein Wetter für einen Wintermantel. Füge zwischen dem
if-Block undelseeinenelif-Zweig mit der Bedingungtemperatur > 10hinzu, derZieh eine Jacke anausgibt. - 2
Füge einen weiteren
elif-Zweig mit der Bedingungtemperatur > 18hinzu, derZieh einen Pullover anausgibt, und änderetemperaturauf20. Das Programm sollZieh einen Pullover anausgeben. Wenn esZieh eine Jacke anausgibt, steht die Bedingungtemperatur > 10an erster Stelle und fängt auch 20 Grad ab: Schiebe den neuen Zweig davor.