Entscheidungen treffen · Übung
Führe Code aus, wenn eine Bedingung wahr ist
Ein Vergleich liefert Python eine boolesche Antwort. Eine if-Anweisung verwendet diese Antwort, um zu entscheiden, ob ein Anweisungsblock ausgeführt werden soll.
Hier ist eine erste Entscheidung:
Das Programm gibt beide Zeilen aus, weil temperature < 15 den Wert True hat.
Ändere temperature auf 20 und führe das Beispiel erneut aus. Die Nachricht zur Jacke verschwindet, die letzte Zeile erscheint aber weiterhin.
Lies eine if-Anweisung in drei Teilen
Die ersten beiden Zeilen enthalten drei wichtige Bestandteile:
if temperature < 15:
print("Bring a jacket.")
Das Schlüsselwort
ifbeginnt die Entscheidung.temperature < 15ist die Bedingung. Python wertet sie alsTrueoderFalseaus.Der Doppelpunkt
:kündigt einen eingerückten Block an.
Wenn die Bedingung True ist, führt Python den eingerückten Block aus. Ist sie False, überspringt Python diesen Block.
Eine normale Bedingung braucht in Python keine Klammern. Der Doppelpunkt und die Einrückung zeigen die Struktur.
Einrückung gruppiert Anweisungen
In Python gehört die Einrückung zur Syntax. Üblich sind vier Leerzeichen für jede Zeile innerhalb eines if-Blocks.
Ein Block kann mehr als eine Anweisung enthalten:
Alle drei eingerückten Zeilen gehören zum if-Block. Der letzte Ausgabeaufruf ist nicht mehr eingerückt. Deshalb läuft er nach der Entscheidung, unabhängig davon, ob die Bedingung wahr oder falsch war.
Gehe das Beispiel von oben nach unten durch. Python wertet die Bedingung aus, betritt den Block, ändert balance und fährt dann mit der nicht eingerückten Zeile fort. Wäre cost gleich 30, würde Python den gesamten eingerückten Block überspringen.
Eine boolesche Variable kann die Bedingung sein
Eine Bedingung muss nicht direkt in der if-Zeile einen Vergleich enthalten. Wenn eine Variable bereits True oder False enthält, verwende sie direkt:
Lies if is_member: als „wenn is_member wahr ist“. if is_member == True: zu schreiben ist unnötig. Die Variable enthält bereits die boolesche Antwort, die if braucht.
Getrennte if-Anweisungen stellen getrennte Fragen
Ein Programm kann mehrere unabhängige if-Anweisungen enthalten. Python wertet jede davon aus:
Die erste Nachricht erscheint, die zweite nicht. Das sind zwei getrennte Entscheidungen, deshalb werden beide Bedingungen geprüft.
Die nächste Lektion führt else für Situationen ein, in denen genau einer von zwei Wegen ausgeführt werden soll. Vorerst wird jeder if-Block unabhängig ausgeführt oder übersprungen.
Zwei Syntaxdetails zum Prüfen
Ein fehlender Doppelpunkt ist ein Syntaxfehler:
if temperature < 15
print("Bring a jacket.")
Eine nicht eingerückte Zeile kann den beabsichtigten Block nicht bilden:
if temperature < 15:
print("Bring a jacket.")
Wenn Python auf eine if-Zeile oder die Zeile direkt darunter zeigt, prüfe zuerst den Doppelpunkt und die Einrückung.
Welche Zeile gehört zum if-Block?
points = 12
if points >= 10:
print("Target reached")
print("Score checked")
Was gibt dieser Code aus?
temperature = 22
if temperature < 20:
print("Wear a jacket")
print("Ready")Schreibe drei unabhängige Entscheidungen
Die Übung gibt feste Informationen für einen Ausflug vor. Ergänze drei if-Anweisungen:
Gib eine Erinnerung an Wasser aus, wenn die Temperatur mindestens
25beträgt;gib eine Erinnerung an einen Regenschirm aus, wenn Regen erwartet wird;
gib eine Nachricht zur Öffnung aus, wenn der Veranstaltungsort geöffnet ist.
Eine Bedingung ist falsch. Ihre Nachricht muss übersprungen werden. Behalte die letzte nicht eingerückte Zeile bei, damit das Programm immer mit Check complete. endet.
Die letzte nicht eingerückte Zeile läuft nach allen drei Entscheidungen, auch wenn ein Block übersprungen wird.
Aufgabe
Ergänze den Tagesplan um drei unabhängige if-Anweisungen.
Wenn
temperaturemindestens25beträgt, gibTake extra water.aus.Wenn
rain_expectedwahr ist, gibPack an umbrella.aus.Wenn
venue_openwahr ist, gibThe venue is open.aus.
Verwende für jeden Block einen Doppelpunkt und vier Leerzeichen Einrückung. Lass die festen Werte, die Überschrift und die letzte Zeile Check complete. unverändert.
Wenn das Programm funktioniert, klicke in der Werkzeugleiste des Editors auf Step. Beobachte, wie Python die Blöcke für Temperatur und Veranstaltungsort ausführt, den Regenblock überspringt und dann mit der letzten nicht eingerückten Zeile fortfährt.