Die if-Anweisung in Python
Bei der Ausführung einer if-Anweisung wird zunächst ihr Ausdruck ausgewertet.
- main.py
if print( 0 ):
print( 1 )- Ausgabe
0
Der Wert des Ausdrucks wird dann – wie mit dem aufrufbaren Objekt »bool« (siehe Lektion 14.5.) – nach »bool« gewandelt. Genau dann, falls sich bei dieser Wandlung der Wert »True« ergibt, wird die Suite der if-Anweisung ausgeführt.
Daher nennen wir diesen Ausdruck auch die Bedingung und die Suite die Konsequenz.
- Aufbau einer if-Anweisung
.--. .-----------. .-. .------------.
--->( if )--->| Ausdruck |--->( : )--->| Suite |--->
'--' '-----------' '-' '------------'
Bedingung Konsequenz
Wir zeigen einige einfache Beispiele:
- Protokoll
if False:
print( 14 )
print( 15 )(keine Ausgabe)
- Protokoll
if True:
print( 14 )
print( 15 )14
15- Protokoll
if 'alpha':
print( 'beta' )beta
- Protokoll
if 'False':
print( 'True' )True
- Protokoll
if 12 - 18 + 6:
print( 'abc' )(keine Ausgabe)
Bei der Eingabe in die Konsole wird mit der Ausführung einer eingegebenen if-Anweisung erst begonnen, wenn alle ihre Zeilen vollständig eingegeben wurden, was die Konsole an der Eingabe einer Leerzeile am Ende der if-Anweisung erkennt.
PEP 8
- Zitat aus PEP 8
- Don't compare boolean values to True or False using ==.
Yes: if greeting:
No: if greeting == True:- Hinweis
- Der korrekte Name des Datentyps lautet »bool« – nicht »boolean«.
Die einzeilige if-Anweisung
Wie bei einer Funktionsdefinition, so kann auch bei der if-Anweisung eine semikolongetrennt Folge von Anweisungen direkt hinter den Doppelpunkt in dieselbe Zeile geschrieben werden. Dann bilden jene Anweisungen die Suite. Die if-Anweisung besteht bei Verwendung dieser Schreibweise aus einer Zeile und kann nicht in weiteren Zeilen fortgesetzt werden.
ℛ Stilregel Die mehrzeilige if-Anweisung, bei der die Suite in einer neuen Zeile beginnt, gilt in Python als besserer Stil verglichen mit dem Schreiben der Suite in die Zeile, welche mit »if« beginnt.
Übungsfragen
? Übungsfrage 0
Was ist die Ausgabe des folgenden Programms (also der folgenden Eingabe in die Python -Implementation)?
- Programm
if print( 'abc' ):
pass
? Übungsfrage 1
Was ist die Ausgabe des folgenden Programms?
- Programm
if print( 'abc' ):
print( 'def' )
? Übungsfrage 2
Was ist die Ausgabe des folgenden Programms?
- Programm
if 'abc':
print( 'def' )
Übungsaufgaben
/ Übungsaufgabe
Falls in ein Programm ein Wort aus der linken Spalte eingegeben wird, soll das Wort ausgegeben werden, das sich in derselben Zeile in der rechten Spalte befindet.
- Tabelle der Eingaben und Ausgaben
Tisch table
Haus house
Sonne sun
Erde earth
Dieses Programm soll if-Anweisungen verwenden, um Eingaben aus der linken Spalte zu erkennen und dann gegebenenfalls das entsprechende Wort aus der rechten Spalte auszugeben.
/ Verschachtelungen
main.py
if True:
print( 14 )
Schreiben Sie eine Definition einer Funktion »f«, welche als Suite nur die obige if-Anweisung enthält, und rufen Sie diese Funktion dann zweimal auf. Es müßte dann die folgende Ausgabe entstehen.
- erwartete Ausgabe
14
14
Anwendungsbeispiel ⃗
Das folgende Beispiel zeigt eine Analyse der Bevölkerung der Bundesrepublik vom 2011-05-09. (Quelle: »http://www.statistik.bremen.de/sixcms/media.php/13/StatistischeMitteilungen_116.pdf«).
- Programm
personen = 80_219_695
weiblich = 41_066_140
männlich = 39_153_540
if weiblich + männlich == personen:
print( "weiblich + männlich == personen" )
if weiblich + männlich != personen:
print( "weiblich + männlich != personen" )
if weiblich + männlich < personen:
print( "weiblich + männlich < personen" )