Das Problem vor der Lösung
Stell dir vor, du willst für drei Personen jeweils eine Begrüßung mit einer Berechnung ihres Alters in Tagen ausgeben.
tage = jahre * 365 und print(...) stehen praktisch identisch dreimal da — nur die Werte ändern sich. Was müsstest du ändern, wenn sich herausstellt, dass ein Jahr eigentlich 365.25 Tage hat?Die Idee dahinter
Statt den Rechenweg jedes Mal neu aufzuschreiben, schreibst du ihn einmal auf und rufst ihn beliebig oft auf. Genau das lernst du in diesem Block.
Die Funktion — Bauteile
Eine Funktion besteht aus festen Bestandteilen. Schau dir das kleinstmögliche Beispiel an.
Anatomie einer Funktion
def — Schlüsselwort, leitet die Definition ein. Ab hier merkt sich Python: „Hier kommt eine Anleitung, aber noch keine Ausführung."
begruessung — der Funktionsname, frei wählbar wie ein Variablenname.
() — die Klammern, hier stehen später die Parameter. Aktuell noch leer.
Rumpf — alles, was eingerückt unter der ersten Zeile steht: der Code, der bei Aufruf ausgeführt wird.
❌ Häufiger Denkfehler
def-Block ausführen = Funktion läuftdef allein führt noch nichts aus. Python liest die Anleitung nur und merkt sie sich.
✅ Richtig
Erst der Aufruf startet den RumpfErst begruessung() — mit Klammern, ohne def — startet den Code im Rumpf.
info, die (ohne Parameter) die zwei Zeilen Python Klasse 10 und Block 3 ausgibt (je eine eigene print-Zeile). Rufe die Funktion anschließend zweimal auf.def info():
print("Python Klasse 10")
print("Block 3")
info()
info()Mit Parametern füttern
Ohne Parameter macht die Funktion immer dasselbe. Mit einem Parameter in der Klammer kann sie bei jedem Aufruf mit einem anderen Wert arbeiten.
tage_seit_geburt(jahre) mit einem Parameter jahre, die jahre * 365 ausgibt. Rufe sie für 14 Jahre auf und speichere das Ergebnis der Ausgabe zusätzlich in einer Variable tage_14 (also: tage_14 = jahre * 365 innerhalb der Funktion, bevor du ausgibst — oder rufe die Funktion so an, dass am Ende tage_14 und tage_15 mit den richtigen Werten existieren).def tage_seit_geburt(jahre):
tage = jahre * 365
print("Etwa", tage, "Tage alt.")
return tage
tage_14 = tage_seit_geburt(14)
tage_15 = tage_seit_geburt(15)return tage zurückgibt — dazu kommt gleich Thema 04.Der Rückgabewert
print() zeigt einen Wert nur an — danach ist er weg. Mit return gibt die Funktion einen Wert zurück, den du in einer Variable speichern und weiterverwenden kannst.
print() — nur anzeigen
print(ergebnis)Schreibt den Wert in die Konsole. Der Wert ist danach nicht mehr im Programm verfügbar.
return — zurückgeben
return ergebnisÜbergibt den Wert an die Stelle, wo die Funktion aufgerufen wurde — dort kann er gespeichert werden.
ergebnis_tom - ergebnis_lena) wäre mit reinem print() in der Funktion nicht möglich gewesen — die Werte müssen als Rückgabewert vorliegen, um weiterverrechnet zu werden.quadrat(zahl), die zahl * zahl per return zurückgibt (kein print in der Funktion!). Speichere das Ergebnis für zahl = 6 in einer Variable ergebnis und gib ergebnis anschließend mit print() aus.def quadrat(zahl):
return zahl * zahl
ergebnis = quadrat(6)
print(ergebnis)notenpunkte(note), die für eine Schulnote (1 bis 6) per return die Punktzahl nach der Formel (6 - note) * 3 zurückgibt. Rufe die Funktion für die Note 2 auf, speichere das Ergebnis in einer Variable punkte und gib am Ende "Punkte:" gefolgt vom Wert von punkte aus.def notenpunkte(note):
return (6 - note) * 3
punkte = notenpunkte(2)
print("Punkte:", punkte)