Funktionen teilen unseren Code in nützliche Blöcke ein, womit wir unseren Code lesbarer machen und denselben Code abgekürzt wiederverwendbar machen können.
Wir kennen alle Funktionen in Python. Mit print() können wir Texte ausgeben und mit max() finden wir den größten Wert in einer Liste. Praktischerweise sind das schon vorgefertigte Funktionen. Wir können auch eigene erstellen.
def funktionsname(input):
befehl
def gruss(vorname):
print(f"Hallo, ich bin {vorname}!")
Wenn du den oberen Codeschnipsel in Python eingibst, wirst du logischerweise keinen Output erhalten – das ist nur die Blaupause. Zum Abrufen einer Funktion gibt man den Funktionsnamen ein und gibt in die Klammern alle notwendigen Input-Parameter ein.
gruss("Yosef")
### Output:
# Hallo, ich bin Yosef!
Das können wir so oft machen wie wir möchten. Wenn du also Code hast und alle paar Zeilen den Leser grüßen möchtest, kannst du das so machen.
Wenn ein Code-Block eine konkrete Aufgabe hat, ist es in der Regel ordentlicher, wenn man ihn in einer Funktion aufschreibt. Mit einem selbsterklärenden Funktionsnamen kann jeder, der den Code liest, leicht nachvollziehen, was an welcher Stelle passiert. Häufig möchte man auch nur eine gewisse Stelle genauer analysieren. Mit der Einteilung in Funktionen kann man viel schneller unwichtige Code-Blöcke überspringen, ohne sich reindenken zu müssen.
Am wichtigsten sind Funktionen, wenn der Code öfter benutzt wird. Damit erspart man sich duplizierten Code und kürzt den Code auf das Wesentliche.
Ich denke die wenigsten interessiert die Formel zur Berechnung einer Standardabweichung. Solange numpy.std() funktioniert und wir die Formel nicht selbst in eine Python-Funktion umwandeln müssen, sind alle glücklich.
Man muss sich Funktionen und den allgemeinen Code getrennt
anschauen. Wird innerhalb einer Funktion eine Variable festgelegt (z.B. x = 10),
gilt das nur innerhalb der Funktion (local), nicht aber in unserem auszuführenden
Code (global). Die Funktion „funktioniert“ also nicht so, wie wir es wollen.
def funktion():
x = 10
x = 20
funktion()
print(x)
### Output:
>>> 20
Wenn wir das x in der Funktion ausgeben möchten, können wir ganz einfach in der Funktion x als globale Variable festlegen:
def funktion():
global x
x = 10
x = 20
funktion()
print(x)
### Output:
>>> 10