Die else-Klausel in Python
Eine Klausel ist ein Teil eines Programms, der mit einem bestimmten Schlüsselwort eingeleitet wird.
Eine if-Anweisung kann auch eine else-Klausel besitzen.
- Aufbau einer if-Anweisung
.------------------------------------------.
.--. .-----------. .-. .------------. | .----. .-. .------------. v
--->( if )--->| Ausdruck |--->( : )--->| Suite |---'--->( else )--->( : )--->| Suite |---'--->
'--' '-----------' '-' '------------' '----' '-' '------------'
Bedingung Konsequenz Alternative
Falls eine if-Anweisung eine else-Klausel besitzt. gilt die folgende Semantik:
Die erste Suite wird ausgeführt, wenn die Wandlung der Bedingung in einen bool-Wert »True« ergibt, sonst wird die zweite Suite ausgeführt.
Eine if-Anweisung ohne else-Klausel ist daher wie eine if-Anweisung mit der else-Klausel »else: pass«.
Die von der folgende Funktionsdefinition definierte Funktion »klasse« beurteilt eine Zahl als »negativ« oder »nicht-negativ«.
- Funktionsdefinition
def klasse( zahl ):
if zahl < 0:
return 'negativ'
else:
return 'nicht-negativ'- Protokoll
print( klasse( 0 ))
nicht-negativ
In vielen einfachen Fällen ist ein if-Ausdruck kürzer als eine entsprechende if-Anweisung.
- Funktionsdefinition
def klasse( zahl ):
return 'negativ' if zahl < 0 else 'nicht-negativ'
Ein if-Ausdruck kann im Gegensatz zu einer if-Anweisung auch an Stellen verwendet werden, an denen nur Ausdrücke gestattet sind, wie beispielsweise in einem lambda-Ausdruck.
Funktionen mit mehreren Ausgängen sind bei einer Minderheit von Programierern verpönt. Diese würden statt dem zuvorgezeigten Programm, folgendes schreiben.
- Funktionsdefinition
def klasse( zahl ):
if zahl < 0:
result = 'negativ'
else:
result = 'nicht-negativ'
return result
/ Lernprogramm
Schreiben Sie eine Definition einer Funktion, die zwei zufällige ganze Zahlen zwischen »0« und »9« ausgibt und dann eine Zahl einliest. Nun soll »richtig« ausgegeben werden, wenn die eingegebene Zahl das Produkt der beiden ausgegebenen Zahlen ist und sonst »falsch«.