Python lernen · 06.09.2026
Python lernen: Funktionen
Funktionen verpacken Anweisungen unter einem Namen — das Fundament jedes größeren Programms. Parameter, return, Docstrings, Übungen und Quiz.
Jedes Mal, wenn du denselben Code zweimal tippst, stirbt ein bisschen Lesbarkeit. Funktionen verpacken eine Aufgabe unter einem Namen — einmal schreiben, überall benutzen. In Falkenmoor stecken Hunderte davon; teiles_ok() zerlegt beispielsweise jeden Spielbefehl in Wörter.
Bausteine bauen
def begruesse(name):
print(f"Sei gegrüßt, {name}!")
begruesse("Mirabel")
begruesse("Thorak")def definiert die Funktion, der Name in Klammern ist der Parameter — ein Platzhalter, der beim Aufruf mit einem echten Wert (dem Argument) gefüllt wird. Beim Aufruf darf nichts fehlen: begruesse() ohne Namen endet in einem TypeError.
return: Werte zurückgeben
Der häufigste Anfänger-Stolperstein ist der Unterschied zwischen print (auf den Bildschirm malen) und return (das Ergebnis an den Aufrufer übergeben). Nur mit return kannst du weiterrechnen:
def schaden(staerke, waffenbonus=2):
"""Berechnet den Schaden eines Angriffs."""
return staerke + waffenbonus
wurf = schaden(7) # 9
kritisch = schaden(7, 6) # 13 — zweiter Wert überschreibt den Default
print(wurf + kritisch) # 22 — mit dem Ergebnis weiterrechnen!Wichtige Details: Parameter mit Default müssen hinten stehen (def f(a, b=2, c) ist ein SyntaxError). Eine Funktion ohne return liefert still None. Und return beendet die Funktion sofort — Zeilen danach laufen nie.
Docstrings — Notizen für dein zukünftiges Ich
Der Text in den dreifachen Anführungszeichen direkt nach def ist der Docstring. Werkzeuge und Editoren zeigen ihn automatisch an; mit help(schaden) liest du ihn sogar im Playground aus.
Lokal bleibt lokal
def verdopple(x):
ergebnis = x * 2 # existiert nur INNERHALB der Funktion
return ergebnis
print(verdopple(21)) # 42
print(ergebnis) # NameError — außen unbekannt!Variablen, die in einer Funktion entstehen, leben und sterben mit ihrem Aufruf. Nach außen dringt nur, was per return herausgegeben wird — genau das hält Programme aufgeräumt.
So übst du das
- Werkzeugkasten: Baue dir eine Datei mit Helfern —
ist_gerade(n),flaeche(b, h),gold_in_silber(g)— und rufe sie im Playground auf. - Rückbau-Übung: Nimm eine deiner alten if-Ketten und verpacke sie in eine Funktion mit Parameter.
- DRY-Jagd: Finde in deinem Code wiederholte Zeilen und ziehe sie in eine Funktion („Don't repeat yourself“).
- Redeweise: Funktionsnamen enthalten Verben —
berechne_…,ist_…,erzeuge_….
Übungen
Übung 1 — Gerade oder ungerade — als Funktion
Schreibe ist_gerade(n), das True oder False zurückgibt.
Musterlösung zeigen
def ist_gerade(n):
return n % 2 == 0
print(ist_gerade(4)) # True
print(ist_gerade(7)) # FalseÜbung 2 — Flächenrechner
Schreibe flaeche(breite, hoehe) und gib die Fläche eines Rechtecks zurück. Erweitere um umfang(breite, hoehe).
Musterlösung zeigen
def flaeche(breite, hoehe):
return breite * hoehe
def umfang(breite, hoehe):
return 2 * (breite + hoehe)
print(flaeche(3, 4), umfang(3, 4)) # 12 14Übung 3 — Gold in Silber
1 Gold sind 10 Silber. Schreibe als_text(betrag), das einen Silber-Betrag als Text wie 2 G 3 S zurückgibt — mit // und %.
Musterlösung zeigen
def als_text(betrag): # betrag in Silber
g, s = betrag // 10, betrag % 10
return f"{g} G {s} S"
print(als_text(23)) # 2 G 3 SÜbung 4 — Begrüßung mit Fallback
Schreibe begruesse(name="Wanderer") — ohne Argument wird „Wanderer“ begrüßt.
Musterlösung zeigen
def begruesse(name="Wanderer"):
return f"Sei gegrüßt, {name}!"
print(begruesse()) # Sei gegrüßt, Wanderer!
print(begruesse("Mirabel"))Quiz — Teste dich
Erst überlegen, dann aufklappen — so trainiert es am meisten!
- Was gibt eine Funktion zurück, die kein
returnhat? - Ist
def f(a, b=2, c):erlaubt? - In der Funktion steht
ergebnis = x * 2. Kannst du danach außenprint(ergebnis)aufrufen? - Eine Funktion gibt Text per
printaus, hat aber keinreturn. Was liefertx = funktion()inx? begruesse(name="Wanderer")— was passiert beim Aufrufbegruesse()?
Quiz-Lösungen anzeigen
None— implizit, ohne dass du es siehst.- Nein — Parameter mit Default müssen hinten stehen:
def f(a, c, b=2)wäre korrekt. - Nein —
NameError: Variablen in Funktionen sind lokal. None— der Text war nur gemalt; ohnereturnkommt nichts an.- Der Default greift: „Wanderer“ wird begrüßt.
↩ Vorheriger Teil: Schleifen
Weiter geht's mit dem nächsten Teil: Listen
Mehr aus der Kategorie „Python lernen“
- Python lernen: Tests 13.09.2026
- Python lernen: Dein Einstieg 10.09.2026
- Python lernen: Variablen 09.09.2026
- Python lernen: Konditionen (if/elif/else) 08.09.2026