Rückgabewerte
Eine Funktion kann zwei Arten von Aufgaben erfüllen:
- 1) etwas bewirken
- Zum Beispiel bewirkt die Funktion
forward(20)aus dem Modulturtle1, dass die Turtle um 20 Pixel nach vorne bewegt wird. - 2) einen Wert produzieren
- Zum Beispiel produziert die Funktion
sqrt(64)aus dem Modulmath2 den Wert8.0— also die Quadratwurzel (engl.: square root) von64.
Wenn eine Funktion einen Wert produziert, nennen wir diesen Wert den Rückgabewert.
Beispiele:
- Der Rückgabewert der
sqrt(n)-Funktion ist die Quadratwurzel des Parametersn. - Der Rückgabewert der
input()-Funktion ist der gesamte Text, den der Benutzer vor dem Drücken der Enter-Taste in der Kommandozeile eingibt.
Rückgabewerte zuweisen
Der Rückgabewert einer Funktion können wir einer Variable zuweisen:
from math import *
eingabe = input("Geben Sie eine Zahl ein, um deren Quadratwurzel zu berechnen: ")
eingabe_als_zahl = int(eingabe)
resultat = sqrt(eingabe_als_zahl)
resultat_als_text = str(resultat)
print("Die Quadratwurzel von " + eingabe + " ist " + resultat_als_text)
In diesem Beispielprogramm wird der Benutzerin eine Zahl erfragt und anschliessend deren Quadratwurzel ausgegeben. Dabei werden die Rückgabewerte der Funktionen input(), int(), sqrt() und str() jeweils einer Variable zugewiesen.
Einen Wert zurückgeben
Eine Funktion hat genau dann einen Rückgabewert, wenn ihre letzte Zeile aus einem return-Ausdruck besteht.
Mit dem Schlüsselwort return (dt: zurückgeben) wird am Ende einer Funktion ein Wert zurückgegeben. Die Ausführung der Funktion endet in jedem Fall, sobald dabei dieser return-Ausdruck erreicht wird.
Beispielprogramm:
def summe(a, b):
print("Berechne Summe...")
resultat = a + b
return resultat
print("Berechnung erfolgreich!")
berechnung = summe(5, 10)
print(berechnung)
Die Ausgabe dieses Programms sieht wie folgt aus:
Berechne Summe...
15
- Die Funktion
summe()berechnet auf der Zeile3die Summe aus den Parameternaundbund weist den Rückgabewert dieser Addition der Variableresultatzu. - Der Wert der Variable
resultatwird mit demreturn-Ausdruck auf Zeile4als Rückgabewert dersumme()-Funktion zurückgegeben. - Mit dem
return-Ausdruck auf Zeile4endet die Ausführung diesersumme()-Funktion — die Zeileprint("Berechnung erfolgreich!")wird also nie ausgeführt und kann daher entfernt werden. - Auf Zeile
7wird diesumme()-Funktion mit den Argumenten5und10aufgerufen. Der Rückgabewert dieses Funktionsaufrufs wird die Zahl15sein. Dieser Wert wird der Variableberechnungzugewiesen. - Auf Zeile
8wird der Wert der Variableberechnung(also15) ausgegeben.