Die elif-Klausel in Python
Eine elif-Klausel kann in einer in einer if-Anweisung an einer Stelle stehen, an der auch eine else-Klausel erlaubt wäre.
Sie wird ausgeführt, wenn bisher keine der vorigen Suiten der if-Anweisung ausgeführt wurde und der Werte des Ausdrucks hinter »elif« als wahr gilt (zum Ausdruck „als wahr gelten“ siehe Lektion 15.1.).
Es ist auch erlaubt, mehrere elif-Klauseln hintereinander zu schreiben.
Wenn einem if-Kopf mit einer Bedingung elif-Klauseln mit Bedingungen folgen, wird also die erste Suite ausgeführt, vor der eine Bedingung steht, deren Wert als wahr gilt.
Eine eventuelle else-Klausel muß hinter allen anderen Klauseln stehen; ihre Suite wird genau dann ausgeführt, wenn alle anderen Suiten nicht ausgeführt wurden.
Die else-Klausel hinter einer elif-Klause darf auch entfallen.
- Funktionsdefinition
def bewertung( fehler ):
if fehler < 2:
note = 1elif fehler < 4:
note = 2elif fehler < 6:
note = 3elif fehler < 8:
note = 4elif fehler < 10:
note = 5else:
note = 6return note
Übungsfrage
/ Übungsfrage
Was gibt das folgende Programm aus?
main.py
def print( n ):
print( n * 2 )print( 2 )
/ Übungsfrage
Was gibt das folgende Programm aus?
main.py
def deutsch( n ):
if n == 0: result = "Null"
if n == 1: result = "Eins"
if n == 2: result = "Zwei"
if n == 3: result = "Drei"
else : result = "Vier"
return resultdef print_deutsch( n ):
print( deutsch( n ))print_deutsch( 0 )
print_deutsch( 1 )
print_deutsch( 2 )
print_deutsch( 3 )
print_deutsch( 4 )- Aussprachehinweis
- result rɪˈzʌlt
Übungsaufgaben
/ Übersetzung
Falls ein Wort aus der linken Spalte an eine Funktion übergeben wird, soll diese Funktion das Wort zurückgeben, 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 das Schlüsselwort »if« nur einmal enthalten, es darf aber beliebig oft »elif« verwendet werden.
/ Klassifizieren
Verwenden Sie if-Ausdrücke zur Klassifikation:
Eine Funktion soll für Argumentwerte bis einschließlich 3 den Text „gut“, bis einschließlich 7 den Text „ausreichend“, und für größere Argumentwerte den Text „ungenügend“ zurückgeben.
Dieses Programm soll das Schlüsselwort »if« nur einmal enthalten, es darf aber beliebig oft »elif« verwendet werden.
/ Übungsaufgabe
In einem hypothetische Land dürfen nur Personen zwischen 16 und 99 Jahren arbeiten. Schreiben Sie eine Definition einer Funktion, die »ok«, »zu jung« oder »zu alt« ausgibt, je nachdem, ob die Person arbeiten darf, oder zu jung beziehungsweise zu alt ist. Diese Funktion soll das Alter als ein Argument akzeptieren, wobei der Typ »int« angenommen werden darf.
Zum Schreiben dieser Funktion sollen – wie immer – nur die bisher behandelten Sprachelemente verwendet werden. Bei dieser Aufgabe dürfen in der zu erstellenden Funktionsdefinition aber keine Funktionen (außer »print«) aufgerufen und keine if-Ausdrücke verwendet werden.
/ Übungsaufgabe
Die Determinante ‹ D › einer quadratische Gleichung ‹ ax ² + bx + c = 0 › ist ‹ 4ac − b² ›.
Die Gleichung hat zwei Lösungen, wenn die Determinante negativ ist;
die Gleichung hat eine Lösung, wenn die Determinante gleich Null ist;
sonst hat die Gleichung keine Lösung.
Gegebenenfalls sind die Lösungen durch den folgenden Term gegeben.
- Term
________
-b ± √ b²-4ac
----------------
2a
Schreiben Sie eine Definition einer Funktion, welche die drei Parameter der Gleichung als Argumentwerte akzeptiert und die Anzahl der Lösungen der zu den Parametern gehörenden Gleichung und gegebenenfalls die Lösungen selber ausgibt.