Fachkonzept: Funktion
Funktionen in der Mathematik
Funktionen kennst Du wahrscheinlich aus dem Mathematik-Unterricht. Die Funktion \begin{equation} f(x) = 3 \cdot x + 5 \end{equation} ordnet jedem Wert für $x$ einen entsprechenden Funktionswert $f(x)$ zu. Der Zahl $1$ wird der Wert $3 \cdot 1 +5$, also $8$, zugeordnet, der Zahl $2$ der Wert $3 \cdot 2 +5$, also $11$ usw. Eine Funktion hat in der Mathematik immer einen Funktionsnamen, im Mathematikunterricht häufig einen einzelnen Buchstaben $f$, $g$, usw. Die Variable in Klammern stehende Variable $x$ heißt Funktionsargument.
In der höheren Mathematik können Funktionen durchaus auch mehrere Funktionsargumente haben. Ein Beispiel wäre die Funktion \begin{equation} f(x,y,z) = 3 \cdot x + 7 \cdot y - 2 \cdot z + 8 \end{equation} Eine solche Funktion ordnet dann jeder Kombination aus drei Zahlen einen Wert zu, der Kombination $(x=2; y=5; z=3)$ zum Beispiel den Wert $3 \cdot 2 + 7 \cdot 5 - 2 \cdot 3 + 8$, also $43$.
Wichtig für uns ist hier: Eine mathematische Funktion hat einen Namen, eine Eingabe (das Funktionsargument bzw. die Funktionsargumente) und eine Ausgabe (den zugeordneten Funktionswert).
Einfache Funktionen in Python
Die oben gezeigte Funktion \begin{equation} f(x,y,z) = 3 \cdot x + 7 \cdot y - 2 \cdot z + 8 \end{equation} kann man auch in der Programmiersprache Python darstellen. Die Darstellung sieht etwas anders aus als im Mathematikbuch, aber vieles lässt sich wiedererkennen:def f(x,y,z):
return 3*x + 7*y - 2*z + 8
Man erkennt vor allem den Funktionsnamen und die Argumente. Am
Schlüsselwort return
erkennt man,
dass ein Wert zurückgegeben wird; hinter dem Schlüsselwort steht ein
Ausdruck für den Rückgabewert.
Neben dem Festlegen der Rückgabe können aber auch weitere Befehle in
einer Python-Funktion stehen. Das könnte zum Beispiel bei komplizierten
Funktionen eine Art Zwischenrechnung sein, es können aber auch
beliebige andere Python-Befehle sein.
Im Fall aus dem letzten Abschnitt
def draw():
screen.clear()
liegt ein (aus mathematischer Sicht) extremer Spezialfall vor: Diese
Funktion hat überhaupt keine Funktionsargumente (zwischen den Klammern
hinter dem Funktionsnamen draw
steht nichts). Außerdem
wird auch kein Wert zurückgegeben: es gibt keine return
-Anweisung. Aus mathematischer
Sicht gesehen ist das eine eher unsinnige Funktion.
Funktionen werden in Python jedoch auch genutzt, um eine Folge von
mehreren Befehlen zusammenzufassen und dieser Zusammenfassung einen
Namen (eben den Funktionsnamen) zu geben.
In der Funktion draw
wird die Befehlsfolge festgelegt, die
beim Zeichnen des Fensters ausgeführt werden soll. In unserem Beispiel
besteht diese Folge nur aus einem einzigen Befehl
screen.clear()
, später werden das aber deutlich mehr
Befehle werden. Die Befehle in einer Funktion werden gegenüber dem Wort
def
eingerückt.
Auf diese Weise kann man mit Funktionen eigene Python-Befehle
konstruieren, in diesem Fall der neue Befehl draw()
.