0%

Eigene Funktionen schreiben · Übung

Einen Wert zurückgeben

Manche Funktionen führen eine Aktion aus, zum Beispiel eine Nachricht anzuzeigen. Andere Funktionen berechnen oder erzeugen einen Wert, den der Rest des Programms verwenden kann.

Die zweite Art hast du bereits verwendet:

letter_count = len("Python")

len("Python") liefert die ganze Zahl 6, und die Zuweisung speichert sie in letter_count.

Deine eigenen Funktionen können mit return Werte liefern.

def double(number):
    return number * 2

Der Funktionsaufruf hat jetzt einen Wert:

result = double(7)
print(result)

Das Argument 7 wird zum Wert des Parameters number. Der Ausdruck number * 2 ergibt 14. Anschließend gibt return den Wert 14 an den aufrufenden Code zurück, wo er result zugewiesen wird.

Ein Aufruf kann als Ausdruck verwendet werden

Weil double(7) einen Wert zurückgibt, kannst du den Aufruf überall dort verwenden, wo dieser Wert sinnvoll wäre:

Try it

Das Ergebnis einer Variablen zuzuweisen ist oft am leichtesten zu lesen, besonders beim Lernen. Die kompakten Formen sind nützlich, solange sie verständlich bleiben.

Return beendet den Aufruf

Wenn Python return erreicht, gibt es den Wert sofort an den aufrufenden Code zurück. Spätere Zeilen im selben Funktionskörper werden nicht ausgeführt:

def double(number):
    return number * 2
    print("This line is unreachable.")

Schreibe die wichtigste Berechnung vorerst in eine einzige return-Anweisung gegen Ende einer kleinen Funktion. Spätere Kapitel zeigen Situationen, in denen eine frühere Rückgabe sinnvoll ist.

Informationen zurückgeben und dann ihre Verwendung entscheiden

Hier ist eine Funktion, die Text erstellt, ohne festzulegen, wohin dieser Text gehen soll:

def make_label(name, place):
    return f"{name} -> {place}"

Ein aufrufender Codeabschnitt kann die Beschriftung ausgeben:

print(make_label("Iris", "Oslo"))

Ein anderer kann sie speichern:

first_trip = make_label("Iris", "Oslo")

Ein weiterer kann sie in eine Liste aufnehmen:

trips = [make_label("Iris", "Oslo"), make_label("Dev", "Accra")]

Die Funktion bleibt nützlich, weil sie das Ergebnis zurückgibt, statt jede spätere Entscheidung selbst zu treffen.

Was gibt dieses Programm aus?

def add_fee(price):
    return price + 3

total = add_fee(7)
print(total * 2)

Aufgabe

Vervollständige make_label(name, place) so, dass die Funktion eine Reisebeschriftung in dieser Form zurückgibt:

Iris -> Oslo

Behalte anschließend die vorhandene Zuweisung und den print-Aufruf bei, damit das Programm die zurückgegebene Beschriftung einmal anzeigt.

Erwartete Ausgabe:

Iris -> Oslo

Wenn die Übung bestanden ist, verwende Step im Übungseditor. Beobachte, wie Python in make_label wechselt, return erreicht und dann den zurückgegebenen String der Variablen label zuweist.