Die if-Anweisung
Bisher haben deine Programme jede Zeile ausgeführt, eine nach der anderen, von oben nach unten. Ein Programm muss aber oft entscheiden, was zu tun ist: eine Warnung nur anzeigen, wenn ein Passwort zu kurz ist, oder einen Rabatt nur geben, wenn der Kunde Student ist. Solche Entscheidungen treffen wir ständig: Wenn es regnet, nehme ich einen Regenschirm mit.
In Python schreibst du eine Entscheidung mit der if-Anweisung:
temperatur = 30
if temperatur > 25:
print("Es ist heiß, nimm eine Mütze mit")
print("Schönen Tag noch")Das gibt Folgendes aus:
Es ist heiß, nimm eine Mütze mit
Schönen Tag nochDie if-Anweisung hat vier Teile:
- das Schlüsselwort
if. Ein Schlüsselwort ist ein Wort mit einer besonderen Bedeutung in Python; - eine Bedingung:
temperatur > 25. Eine Bedingung ist eine Frage, die man nur mit Ja (wahr) oder Nein (falsch) beantworten kann: Ist die Temperatur größer als 25? - einen Doppelpunkt
:am Zeilenende; - einen Codeblock: die eingerückten Zeilen unter der Zeile mit
if. Der Block wird nur ausgeführt, wenn die Bedingung wahr ist.
Die Zeilen des Blocks sind eingerückt: Sie beginnen mit 4 Leerzeichen. In Python dient die Einrückung nicht nur der Optik: Daran erkennt Python, welche Zeilen zum Block gehören. Du musst die Leerzeichen nicht zählen. Wenn du den Doppelpunkt tippst und die Eingabetaste drückst, rückt der Editor die nächste Zeile selbst ein, und auch die Tab-Taste fügt 4 Leerzeichen ein. Wenn der Block zu Ende ist, löschst du die Einrückung der nächsten Zeile mit der Rücktaste.
Nach dem Block läuft das Programm normal weiter, deshalb wird Schönen Tag noch in jedem Fall ausgegeben. Wäre temperatur gleich 10, wäre die Bedingung falsch: Das Programm würde den Block überspringen und nur Schönen Tag noch ausgeben.
Ein Block darf nicht leer sein. Wenn du vergisst, die Zeile unter dem if einzurücken, gibt das Programm nichts aus und endet mit einem Fehler:
temperatur = 30
if temperatur > 25:
print("Es ist heiß, nimm eine Mütze mit")Traceback (most recent call last):
File "<exec>", line 3
print("Es ist heiß, nimm eine Mütze mit")
^^^^^
IndentationError: expected an indented block after 'if' statement on line 2Lies ihn von der letzten Zeile an: Python hat nach der if-Anweisung in Zeile 2 einen eingerückten Block erwartet, aber Zeile 3 ist nicht eingerückt. Der andere typische Fehler ist ein fehlender Doppelpunkt: if temperatur > 25 ohne ihn endet mit SyntaxError: expected ':'.
So schreibst du es:
Anweisungen
- 1
Schreibe unter die Variable eine
if-Anweisung mit der Bedingungmonitor_preis < 400. Gib in ihrem BlockIch kaufe den Monitoraus. - 2
Schreibe unter den Block, ohne Einrückung, eine zweite
if-Anweisung mit der Bedingungmonitor_preis > 400, dieDas ist zu teuerausgibt. Führe das Programm aus: Es gibt weiterhin nurIch kaufe den Monitoraus, weil 300 nicht größer als 400 ist und der zweite Block deshalb übersprungen wird.