Standardwerte für Parameter
In der vorigen Übung hast du gesehen, dass ein Aufruf mit fehlendem Argument mit einem Fehler endet. Oft gibt es aber einen Wert, der meistens passt, und wir wollen nur hin und wieder einen anderen übergeben. Die meisten Leute bestellen zum Beispiel einen mittleren Kaffee. Für solche Fälle kann ein Parameter einen Standardwert haben: Schreibe hinter den Namen des Parameters = und den Wert:
def kaffee_bestellen(getraenk, groesse="mittel"):
print(f"{getraenk}, Größe: {groesse}")
kaffee_bestellen("Latte", "groß")
kaffee_bestellen("Espresso")Das gibt aus:
Latte, Größe: groß
Espresso, Größe: mittelWenn der Aufruf ein Argument für groesse übergibt, verwendet die Funktion es. Wenn nicht, verwendet sie den Standardwert "mittel". Ohne den Standardwert würde der zweite Aufruf mit dem Fehler TypeError: kaffee_bestellen() missing 1 required positional argument: 'groesse' enden.
Beachte, dass um das = eines Standardwerts keine Leerzeichen stehen: groesse="mittel", anders als beim Erstellen einer Variablen: groesse = "mittel". Es würde auch mit Leerzeichen funktionieren; so schreiben es Python-Programmierer eben.
Weil Argumente der Reihe nach in die Parameter kommen, stehen Parameter mit Standardwerten am Ende. Dann kannst du die letzten Argumente weglassen, und die, die du übergibst, kommen trotzdem in die richtigen Parameter. Python lässt sogar nicht zu, dass ein Parameter ohne Standardwert hinter einem mit Standardwert steht: def kaffee_bestellen(groesse="mittel", getraenk): endet mit dem Fehler SyntaxError: parameter without a default follows parameter with a default.
So schreibst du es:
Anweisungen
- 1
Unser Shop zeigt die meisten Preise in Euro an, deshalb übergibt der letzte Aufruf nur den Preis. Führe das Programm aus: Es gibt zwei Preise aus und endet dann mit einem Fehler. Gib dem Parameter
waehrungden Standardwert"EUR". Die letzte Zeile lautet dannPreis: 25 EUR, und die anderen beiden Aufrufe geben weiter ihre eigenen Währungen aus. - 2
Erstelle unter der Funktion
preis_ausgebeneine Funktionbegruessenmit einem Parametername, dessen Standardwert"Gast"ist. Die Funktion gibt eine Begrüßung wieHallo, Anna!aus. - 3
Rufe
begruessenam Ende des Programms einmal ohne Argument und einmal mit deinem Namen als Argument auf. Das Programm gibtHallo, Gast!und dann die Begrüßung mit deinem Namen aus.