Verschachtelungen: Der if-Ausdruck in if-Ausdrücken in Python
Ein if-Ausdruck kann auch als Operand in einem anderen if-Ausdruck vorkommen.
- Protokoll
f = lambda x: 'Null' if x == 0 else( 'Eins' if x == 1 else 'Zwei' )
- Alternative Funktionsdefinition (besserer Stil als die Bindung von lambda-Funktionen an einen gewöhnlichen Bezeichner)
def f( x ):
return 'Null' if x == 0 else \
( 'Eins' if x == 1 else 'Zwei' )- Protokoll
f( 0 )
'Null'
- Protokoll
f( 1 )
'Eins'
- Protokoll
f( 2 )
'Zwei'
Ein innerer if-Ausdruck muß nicht eingeklammert werden.
- Protokoll
f = lambda x: 'Null' if x == 0 else 'Eins' if x == 1 else 'Zwei'
- Protokoll
f = lambda x:\
'Null' if x == 0 else\
'Eins' if x == 1 else 'Zwei'- Alternative Funktionsdefinition (besserer Stil als die Bindung von lambda-Funktionen an einen gewöhnlichen Bezeichner)
def f( x ):
return 'Null' if x == 0 else \
'Eins' if x == 1 else 'Zwei'
Übungsaufgaben
/ Übungsaufgabe
Erweitern Sie die Definition von »f«, so daß die Zahlen 0, 1, 2 und 3 in deutsche Wörter umgewandelt werden.
- Funktionsdefinition (besserer Stil als die Bindung von lambda-Funktionen an einen gewöhnlichen Bezeichner)
def f( x ):
return 'Null' if x == 0 else \
'Eins' if x == 1 else 'Zwei'
Es dürfen nur die bisher in der Definition verwendeten Sprachelemente verwendet werden (also if-Ausdrücke, Parameternamen, Literale und inverse Schrägstriche).
An Stelle der Definition mit »def f( x ):« darf die Funktion auch mit einer lambda-Bindung definiert werden (was aber als schlechter Stil gilt).
- Alternative lambda-Bindung
f = lambda x:\
'Null' if x == 0 else\
'Eins' if x == 1 else 'Zwei'
/ Übungsaufgabe
Schreiben Sie eine Funktion, die einen Parameter hat. Wir gehen davon aus, daß diese Funktion mit einem Argument vom Typ »int« aufgerufen wird.
Wenn der Parameter negativ ist, soll die Zeichenfolge »zu klein« vom Typ »str« zurückgegeben werden.
Wenn der Parameter größer als 130 ist, soll die Zeichenfolge »zu groß« vom Typ »str« zurückgegeben werden.
Sonst soll die Zeichenfolge »akzeptabel« vom Typ »str« zurückgegeben werden.
/ Übungsaufgabe
Schreiben Sie eine Funktion, die den Bediener nach seinem Alter fragt.
Wenn die eingegebene Zahl negativ ist, soll »zu klein« ausgegeben werden.
Wenn die eingegebene Zahl größer als 130 ist ist, soll »zu groß« ausgegeben werden.
Sonst soll die »akzeptabel« ausgegeben werden.
/ Übungsaufgabe
Schreiben Sie eine Definition einer Funktion, die das Maximum ihrer drei ganzzahligen Argumentwerte berechnet, ohne dabei eine andere Funktion aufzurufen.
/ Übersetzen
Falls ein Wort aus der linken Spalte an eine Funktion übergeben wird, soll das Wort zurückgegeben 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 verschachtelte if-Ausdrücke verwenden, um Eingaben aus der linken Spalte zu erkennen und dann gegebenenfalls das entsprechende Wort aus der rechten Spalte als Ergebnis festzulegen, so daß keine weiteren Vergleiche ausgewertet werden, wenn das Wort bereits gefunden wurde.
/ 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.
/ Übungsaufgabe
Schreiben Sie eine Definition einer Funktion, die einen int-Wert als Argument akzeptiert und die ›True‹ ergibt, wenn der int-Wert einer der Werte «1», «2», «3», «4», «5» oder «6» ist. Hierbei dürfen nur die bisher behandelten Sprachelemente verwendet und keine Standardnamen verwendet (keine Standardfunktionen aufgerufen) werden.