Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Bis jetzt ist dir wahrscheinlich aufgefallen, dass sich einige Code-Muster wiederholen.
Was wäre, wenn du diesen Code in ein einzelnes Paket packen, ihm einen Namen geben und ihn jederzeit ausführen könntest, ohne ihn neu schreiben zu müssen?

Genau dafür sind Funktionen da.

Du kannst dir eine Funktion als ein Mini-Programm vorstellen, das innerhalb deines Programms lebt.
Sie hat einen Namen, kann Eingaben entgegennehmen, macht etwas Arbeit und gibt (optional) etwas zurück.


Warum Funktionen verwenden?

Funktionen gehören zu den mächtigsten Werkzeugen in der Programmierung, weil sie:

  • Wiederholungen vermeiden — Einmal schreiben, überall verwenden.
  • Deinen Code organisieren — Große Probleme in kleinere, handhabbare Teile zerlegen.
  • Testen erleichtern — Du kannst einen Logik-Teil überprüfen, ohne das ganze Programm auszuführen.

TIPP: Funktionen sind wie Küchengeräte. Du könntest jedes Mal den Teig von Hand kneten, aber ein Mixer macht es schneller, gleichmäßiger und du kannst ihn immer wieder verwenden.

Deine erste Funktion definieren

In Python erstellst (oder definierst) du eine Funktion mit dem Schlüsselwort def, gefolgt vom Funktionsnamen, Klammern für Eingaben (genannt Parameter) und einem Doppelpunkt.
Dann rückt du den Code, der zur Funktion gehört, ein.

Beispiel:

def square(number):
    return number * number

print(square(4))  # 16

Das passiert hier:

  1. Wir definieren square, das einen Parameter annimmt: number.
  2. Innerhalb multiplizieren wir number mit sich selbst und geben das Ergebnis zurück.
  3. Wir rufen square(4) auf, wobei number durch 4 ersetzt wird.
  4. Die Funktion gibt 16 zurück, was von print() ausgegeben wird.

WICHTIG!: Die Anweisung return sendet einen Wert zurück an die Stelle, an der die Funktion aufgerufen wurde. Wenn du sie vergisst, gibt die Funktion None zurück. Du wirst später lernen, dass nicht jede Funktion etwas zurückgibt, manchmal soll sie einfach nur ein paar Aktionen ausführen.

Funktionen mit mehreren Parametern

Funktionen können beliebig viele Eingaben entgegennehmen. Diese Werte werden in den Klammern, durch Kommas getrennt, angegeben.

Beispiel:

def add(num1, num2):
    return num1 + num2

result = add(5, 6)
print(result)  # 11

Hier wird num1 zu 5 und num2 zu 6, wenn wir die Funktion aufrufen. Innerhalb der Funktion werden sie addiert und das Ergebnis zurückgegeben.

Hinweis: Die Namen num1 und num2 existieren nur innerhalb der Funktion — sie sind lokale Variablen.

Standardwerte für Parameter

Manchmal möchte man, dass ein Parameter einen Standardwert hat, sodass der Benutzer ihn nicht immer angeben muss.

Beispiel:

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("John")                   # Verwendet die Standardbegrüßung
greet("Maria", "Good evening")  # Verwendet eine eigene Begrüßung

Wenn du keine Begrüßung übergibst, wird "Hello" als Standard verwendet. Gibst du eine an, wird der Standard überschrieben.

TIPP: Standardwerte müssen alle erforderlichen Parameter in der Funktionsdefinition folgen.

Zusammenfassung

Funktionen sind dein Werkzeug, um größere, sauberere und intelligentere Programme zu bauen. Du kannst sie so oft aufrufen, wie du möchtest, verschiedene Eingaben übergeben und erwarten, dass sie die Aufgabe zuverlässig ausführen.

In der nächsten Lektion werden wir Rekursion erkunden — eine spezielle Art von Funktion, die sich selbst aufruft. Das klingt vielleicht komisch, aber es eröffnet elegante Lösungen für bestimmte Probleme.