Entscheidungen treffen · Übung
Wähle zwischen zwei Wegen
Eine if-Anweisung kann einen Block ausführen, wenn ihre Bedingung wahr ist. Ist die Bedingung falsch, überspringt Python den Block und fährt fort.
Manchmal muss ein Programm genau einen von zwei Wegen wählen. Ein else-Block stellt den zweiten Weg bereit.
Eine Entscheidung mit zwei Ergebnissen
Führe dieses Beispiel aus:
Python wertet temperature < 10 einmal aus.
Wenn die Bedingung
Trueist, läuft der erste eingerückte Block.Wenn die Bedingung
Falseist, läuft derelse-Block.
Genau einer dieser beiden Blöcke läuft. Der letzte Ausgabeaufruf steht außerhalb beider Blöcke und läuft deshalb in jedem Fall danach.
Ändere temperature auf 16 und führe das Beispiel erneut aus. Die erste Nachricht wird übersprungen und die Nachricht aus else erscheint.
So stehen if und else untereinander
Die Schlüsselwörter if und else müssen gleich weit eingerückt sein:
if condition:
# Runs when the condition is true
else:
# Runs when the condition is false
Der Doppelpunkt nach else ist erforderlich. else hat keine eigene Bedingung, denn es bedeutet „in jedem anderen Fall“.
Das ist kein gültiges Python:
else temperature >= 10:
Wenn du eine weitere Bedingung prüfen möchtest, lernst du dafür in der nächsten Lektion das Schlüsselwort elif kennen.
Verwende else statt der gegenteiligen Frage
Du könntest zwei getrennte Entscheidungen mit gegenteiligen Fragen schreiben:
Für eine echte Auswahl zwischen zwei Wegen drücken if und else den Zusammenhang deutlicher aus:
Die zweite Variante stellt eine Frage und garantiert ein Ergebnis. Sie vermeidet außerdem das Risiko, später einen Vergleich zu ändern und sein Gegenstück zu vergessen.
Speichere in jedem Zweig ein Ergebnis
Zweige können derselben Variablen unterschiedliche Werte zuweisen:
Welcher Zweig auch läuft, er weist booking_status einen String zu. Der Ausgabeaufruf steht nach der vollständigen Entscheidung und verwendet den Wert, den dieser Zweig gewählt hat.
Dieses Muster ist nützlich, wenn das Programm zuerst Daten auswählen und sie anschließend anzeigen oder verwenden soll.
Auch hier funktioniert eine boolesche Variable
Die Bedingung kann eine boolesche Variable sein:
Du musst nicht notifications_enabled == True schreiben. Die Variable enthält bereits die boolesche Antwort.
Welche Variante verbindet einen else-Block korrekt mit seiner if-Anweisung?
# Version A
if score >= 50:
print("Passed")
else:
print("Try again")
# Version B
if score >= 50:
print("Passed")
else:
print("Try again")
Was gibt dieser Code aus?
points = 7
if points >= 10:
print("Target reached")
else:
print("Keep going")
print("Checked")Erstelle eine Buchungsnachricht
Die Übung gibt eine feste Anzahl verbleibender Plätze vor. Weise booking_message mit einer einzigen if/else-Anweisung einen Wert zu:
Verwende
Seats are available., wennseats_remaininggrößer als0ist;verwende andernfalls
Sold out..
Die vorgegebenen Ausgabeaufrufe zeigen die ausgewählte Nachricht an und bestätigen dann, dass die Prüfung abgeschlossen ist. Wenn deine Lösung die Prüfung bestanden hat, ändere seats_remaining auf eine positive Zahl und führe das Programm erneut aus, um den anderen Weg zu sehen.
Aufgabe
Wähle die Buchungsnachricht mit einer einzigen if/else-Anweisung.
Wenn
seats_remaininggrößer als0ist, weisebooking_messageden WertSeats are available.zu.Weise andernfalls
booking_messageden WertSold out.zu.
Lass den festen Wert und die vorgegebenen Ausgabeaufrufe unverändert. Verwende nach if und else jeweils einen Doppelpunkt und rücke jede Zuweisung um vier Leerzeichen ein.