13 Funktionen selber schreiben
Du hast bereits eine Menge Funktionen in Python benutzt – sowohl solche, die fest eingebaut sind, als auch welche, die du vorher aus Modulen geladen hast. Funktionen machen das Programmieren übersichtlich. Jetzt ist es Zeit, eigene Funktionen zu basteln.
Was sind Funktionen noch mal genau?
Vielleicht kennst du Funktionen aus dem Matheunterricht, zum Beispiel f(x) = x + 7.
Für jedes x definiert die Funktion f(x) einen Wert, der mit x+7 berechnet wird. Das ist auch die Grundidee von Funktionen in Python – allerdings können Funktionen viel mehr tun als nur einen Wert berechnen.
Funktionen sind für den Programmierer wie Befehle, die etwas berechnen oder etwas ausführen. Selbstgeschriebene Funktionen sind Befehle, die über die Standardbefehle von Python hinausgehen und spezielle Dinge leisten können. Eine Funktion führt ein kleines Programm aus und liefert bei Bedarf dann einen berechneten Wert zurück. Es gibt Funktionen, die bereits in Python eingebaut sind, wie zum Beispiel input("Text") – und es gibt unzählige Funktionen, die man sich über Module hinzuladen kann – wie zum Beispiel randint(x,y) aus dem Modul random oder sin(x) aus dem Modul math oder forward(x) aus dem Modul gturtle. Unbegrenzt werden die Möglichkeiten dadurch, dass man auch jederzeit einfach eigene Funktionen definieren kann.
In manchen Programmiersprachen wird zwischen »Prozeduren« und Funktionen unterschieden. Prozeduren sind wie Befehle, die nur etwas ausführen. Sie können alleine aufgerufen werden:
msgDlg ("Hallo")
gibt ein Fenster mit dem Text »Hallo« aus.
»Echte« Funktionen werden hingegen wie Variablen verwendet, weil sie einen Wert zurückliefern:
x = input("Bitte Wert eingeben")
liefert den eingegebenen Wert zurück und schreibt ihn in die Variable x.
In Python unterscheidet man aber nicht zwei verschiedene Typen (Prozeduren und Funktionen) – beides sind dort einfach Funktionen, und man kann sie mit oder ohne Rückgabewert verwenden – sie führen entweder nur einfach etwas aus, oder sie liefern uns einen Wert zurück, den wir verwenden können. Zum Beispiel kann man die input-Funktion auch ohne Variable benutzen:
input("Das ist ein Eingabefenster")
Auch so öffnet sich ein Fenster – aber egal, was man darin eingibt, der Wert wird nicht gespeichert, weil er keiner Variablen zugewiesen wird.
[+] Aufruf von Funktionen
Der Aufruf einer Funktion besteht immer aus dem Funktionsnamen mit einer darauffolgenden runden Klammer, in der die Werte stehen, die man der Funktion mitgibt (Parameter). Es kann ein Wert in der Klammer stehen – wie bei sin(0.8). Es können mehrere Werte in der Klammer übergeben werden, die man durch ein Komma voneinander trennt – wie bei randint (1,6). Oder die Klammer kann auch leer bleiben, wenn man der Funktion keinen Wert übergeben will, weil sie vielleicht ohnehin immer nur dasselbe macht oder keinen Wert braucht.
input()
ohne Zuweisung und ohne Parameter würde übrigens auch funktionieren. Dann öffnet sich eben ein Eingabefenster ohne Text, und der eingegebene Wert wird auch nicht gespeichert. Macht eigentlich keinen Sinn, aber ist erlaubt.