Kurzlektion zu »if« und »while«
Die if-Anweisung
Die if-Anweisung ist ähnlich aufgebaut wie eine def-Anweisung, das heißt: sie beginnt mit einem Kopf, der mit einem Doppelpunkt endet und dem eine Suite folgen kann.
- Beispiel einer if-Anweisung
if False:
print( "Python" )- Ausgabe der obenstehenden if-Anweisung
- Beispiel einer if-Anweisung
if True:
print( "Python" )- Ausgabe der obenstehenden if-Anweisung
Python
Die Suite wird ausgeführt, wenn der Ausdruck hinter dem Schlüsselwort »if« einen Wert ergibt, der als wahr gilt (der ›True‹ ist, wenn er nach ›bool‹ gewandelt wird).
Die else-Klause (Alternative in einer if-Anweisung)
Die else-Klausel leitet nach einer if-Anweisung der im vorigen Absatz gezeigten Art, eine Suite ein, die genau dann ausgeführt wird, wenn die Suite hinter der if-Bedinung nicht ausgeführt wurde (also eine Alternative).
- Beispiel mit else-Klausel
eingabe = input( "Benotung? " )
if eingabe in { "sehr gut", "gut", "befriedigend", "ausreichend", "mangelhaft" }:
print( "ok." )else:
print( "Diese Benotung kenne ich nicht!" )
Die while-Anweisung
Die while-Anweisung ist ähnlich aufgebaut wie eine if-Anweisung, das heißt: sie beginnt mit einem Kopf, der mit einem Doppelpunkt endet und dem eine Suite folgen kann.
- Beispiel einer while-Anweisung
while False:
print( "Python" )- Ausgabe der obenstehenden while-Anweisung
- Beispiel einer while-Anweisung
while True:
print( "Python" )- Ausgabe der obenstehenden while-Anweisung
Python
Python
Python
…
Die Suite wird ausgeführt, wenn der Ausdruck hinter dem Schlüsselwort »if« einen Wert ergibt, der als wahr gilt (der ›True‹ ist, wenn er nach ›bool‹ gewandelt wird), und in diesem Fall wird wieder von vorne begonnen (also erneut geprüft, ob der Ausdruck hinter dem Schlüsselwort »if« einen Wert ergibt, der als wahr gilt, woraufhin gegebenenfalls die Suite erneut ausgeführt und wieder von vorn begonnen wird).
- Beispiel 0
x = 1
while x:
x = int( input( 'Zahl (0 zum Beenden)? ' ))
print( 'Quadrat = ' + str( x*x ))
- Dialog
Zahl (0 zum Beenden)? 2
Quadrat = 4
Zahl (0 zum Beenden)? 9
Quadrat = 81
Zahl (0 zum Beenden)? 0
Quadrat = 0
- (Ende des Programms)
Weiteres Beispiel
- Weiteres Beispiel
verstaendliche_Eingabe = False
while not verstaendliche_Eingabe:
eingabe = input( "Benotung? " )
if eingabe in { "sehr gut", "gut", "befriedigend", "ausreichend", "mangelhaft" }:
print( "ok." )
verstaendliche_Eingabe = Trueelse:
print( "Diese Benotung kenne ich nicht!" )
print( "Bitte Eingabe wiederholen!" )print( "Ende des Programms" )
Übungsaufgaben
/ Erweiterung einer Funktionsdefinition
Erweitern Sie die folgende Funktionsdefinition so, daß sie (zusätzlich zu »n«) ausgibt: „Vorrat verbraucht, nachbestellen!“, genau dann wenn »n« kleiner als »1« ist. Verwenden Sie hierzu eine if-Anweisung, die hinter der derzeit vorhandenen Ausgabeanweisung eingefügt werden soll. Es darf angenommen werden, daß diese Funktion immer nur mit einer ganzen Zahl aufgerufen wird.
- Paraphrase der zu erstellenden if-Anweisung (Pseudocode)
- Wenn n kleiner als Eins ist, dann schreibe „Vorrat verbraucht, nachbestellen!“
- Quelltext
def vorratAusgeben( n ):
print( n )
/ Übungsaufgabe 0
Schreiben Sie die while-Schleife aus dem Beispiel 0 so um, daß sich die Schleife weiterhin verhält wie im Beispiel 0, aber nach Eingabe von »0« nichts mehr ausgegeben wird.
/ Übungsaufgabe 1
Schreiben Sie die while-Schleife aus dem Beispiel 0 so um, daß die Eingabe einer negativen Zahl zum Beenden führt.
/ Übungsaufgabe 2
Zu tiefe Verschachtelungen sind unübersichtlich. Lagern Sie die Suite der while-Anweisung in eine Funktion aus! Die while-Anweisung soll dann nicht viel mehr als einen Aufruf jener Funktion enthalten.
- Weiteres Beispiel
verstaendliche_Eingabe = False
while not verstaendliche_Eingabe:
eingabe = input( "Benotung? " )
if eingabe in { "sehr gut", "gut", "befriedigend", "ausreichend", "mangelhaft" }:
print( "ok." )
verstaendliche_Eingabe = Trueelse:
print( "Diese Benotung kenne ich nicht!" )
print( "Bitte Eingabe wiederholen!" )print( "Ende des Programms" )