Funktionen in Funktionen
Wir haben bereits das Ablegen eines Rückgabewertes der Funktion abs
auf einer beliebigen Variable kennengelernt. Zusätzlich wissen wir, dass print
den Inhalt von Variablen auflöst.
Funktionen können auch ineinander geschachtelt werden, dabei wird der Rückgabewert einer Funktion einer weiteren als Parameter übergeben.
Führe folgendes Beispiel in deinem Thonny aus:
print(abs(−42))
Solche Schachtelungen werden immer von Innen nach Außen abgearbeitet. Dies bedeutet, zuerst werden Elemente innerhalb der Klammern ausgeführt und die Rückgabewerte an die äußere Funktion als Parameter weitergegeben.
Operatoren in Funktionsaufrufen
Auch das Ergebnis der Anwendung von Operatoren kann einer Funktion als Parameter übergeben werden. Im folgenden Beispiel wird das Minimum der Werte abs(-8)
, 2
und des Ergebnisses der Addition von 3
und 4
ausgegeben.
print(min(abs(-8),2, 3+4))
Das Ergebnis ist 2
.Du kannst nicht nur existierende Built-In Funktionen verwenden, sondern auch deine eigenen Funktionen definieren. Diese können dann wiederum andere Funktionen aufrufen.
Sieh dir den folgenden Quellcode an.
def summe(liste):
# Wenn die Liste leer ist, gib 0 zurück
if liste == []:
return 0
# Speichere das 1. Element in der Variablen element
element = liste[0]
# Entferne das 1. Element aus der Liste
liste.pop(0)
# Die Summe ergibt aus element + Summe der Restliste
return element + summe(liste)
ergebnis = summe([2, 9, 20])
print(ergebnis)
Die Funktion summe
wird zunächst definiert. Sie addiert die Elemente einer Liste, insofern sie numerisch sind und gibt diese Summe als Rückgabewert zurück. Diese Funktion wird mit der Liste [2,9,20]
als Parameter aufgerufen und ihr Rückgabewert der Variablen ergebnis
zugewiesen. Ende des Programms wird der Wert von ergebnis
ausgegeben.
Schau dir im Anschluss daran auch die Lektion 1.5.1 an.