Eigene Funktionen mit def
Du hast schon viele eingebaute Funktionen benutzt: print(), input(), len(). Jetzt schreibst du selbst welche – mit def. Und am Ende bekommt dein Ratespiel seinen bisher ordentlichsten Umbau.
🧭 So funktioniert diese Folge
Auch diese Folge braucht keine Zusatzteile – nur deinen Pi, Tastatur und Maus.
Warum Funktionen?
Du lernst: Was Funktionen sind und warum sie Code übersichtlicher machen.
Leg einen neuen Ordner an: ~/Forscherheft/funktionen. Dort speicherst du die Übungsprogramme aus dieser Folge. ratespiel_v3.py kommt wie gewohnt in ~/Forscherheft/ratespiel.
Stell dir vor, du willst an drei Stellen im Code denselben Satz begrüßen. Ohne Funktion schreibst du ihn dreimal. Mit einer Funktion schreibst du ihn einmal – und rufst sie dreimal auf:
Eine Funktion ist ein wieder verwendbarer Code-Block mit einem Namen. Du schreibst den Code einmal (mit def) und kannst ihn dann beliebig oft aufrufen. Das spart Zeit und macht Fehler seltener.
In der Schule hast du vielleicht gelernt: f(x) = x + 3. Das ist eine Funktion. In Python schreibst du dasselbe als
def f(x): return x + 3 – mehr dazu in Station 3.
🧠 Schnell-Check: Was passiert, wenn du eine Funktion mit def schreibst, ohne sie aufzurufen?
def und Parameter
Du lernst: Einer Funktion Daten mitgeben, damit sie flexibler wird.
Die Funktion aus Station 1 begrüßt immer gleich. Aber was, wenn du verschiedene Namen begrüßen willst? Dann gibst du der Funktion einen Parameter – eine Variable, die beim Aufruf befüllt wird:
def hallo(name): – name ist der Parameter. Er funktioniert wie eine Variable, die erst beim Aufruf einen Wert bekommt.hallo("Max") – beim Aufruf wird name = "Max" gesetzt. Python führt den Code mit diesem Wert aus.hallo("Lena") – beim zweiten Aufruf gilt name = "Lena". Selber Code, andere Daten!Ein Parameter ist eine Variable in den Klammern von def. Beim Aufruf gibst du den tatsächlichen Wert an – diesen nennt man dann Argument. In hallo("Max") ist "Max" das Argument.
🧠 Schnell-Check: Was gibt hallo("Welt") aus, wenn die Funktion def hallo(name): print("Hallo, " + name + "!") lautet?
Tippe hallo.py ab und starte es. Schreibe dann eine zweite Funktion verdopple(zahl), die zahl * 2 ausgibt. Rufe sie mit verschiedenen Zahlen auf.
return – Ergebnisse zurückgeben
Du lernst: Wie eine Funktion ein Ergebnis berechnet und zurückgibt.
Bisher haben unsere Funktionen nur etwas gedruckt. Aber oft will man, dass eine Funktion etwas berechnet und das Ergebnis zurückgibt, damit man damit weiterarbeiten kann. Dafür gibt es return:
x. Genau wie bei x = len(liste).In Folge 5 schrieben wir
versuche = versuche + 1. Das geht kürzer: versuche += 1 bedeutet genau dasselbe. Das += findest du auch in ratespiel_v3 unten.
return ist der Rückgabewert einer Funktion. Ohne return gibt eine Funktion nichts zurück – sie macht einfach etwas (z. B. drucken). Mit return gibt sie ein Ergebnis zurück, das du weiterverwenden kannst.
🧠 Schnell-Check: Was gibt print(quadrat(4)) aus, wenn def quadrat(z): return z * z?
Tippe quadrat.py ab. Schreibe dann eine Funktion verdopple(zahl), die zahl * 2 zurückgibt (nicht druckt). Gib dann verdopple(verdopple(3)) aus – was kommt raus?
Projekt: ratespiel_v3.py
Du lernst: Ein bekanntes Programm mit Funktionen ordentlich aufteilen.
Du hast das Ratespiel schon zweimal geschrieben: ratespiel_v1.py (Folge 5) und ratespiel_v2.py mit Highscore (Folge 7). Jetzt zerlegen wir es in Funktionen – jeder Teil bekommt einen Namen und eine klare Aufgabe.
Öffne ein Terminal und wechsle in ~/Forscherheft/ratespiel. Kopiere mit:
Jetzt öffne ratespiel_v3.py in Thonny und ersetze den gesamten Inhalt durch den Code unten.
lade_highscore() – liest die Datei und gibt eine Zahl zurück. Wenn die Datei fehlt, gibt sie 999 zurück. Benutzt return an zwei Stellen!speichere_highscore(score) – nimmt eine Zahl als Parameter und schreibt sie in die Datei. Gibt nichts zurück.rate_eine_runde() – die ganze Spiellogik in einer Funktion. while True: läuft endlos, bis die richtige Zahl erraten wird – dann beendet return versuche die Funktion.while True: läuft theoretisch für immer. Aber innerhalb einer Funktion beendet return nicht nur die Schleife, sondern die ganze Funktion – und gibt gleichzeitig einen Wert zurück. Das ist ein sehr häufiges Muster in Python.
Hier kannst du das fertige Spiel testen – genau wie auf deinem Pi. Tippe eine Zahl und drück ⏎.
🎯 Mission: Gewinn in höchstens 5 Versuchen!
- Eine Runde erfolgreich beenden
Glossar – neue Wörter aus Folge 10
Diese Begriffe kommen zu deinem Wissen aus den vorherigen Folgen dazu.
- Funktion
- Ein benannter, wiederverwendbarer Code-Block. Erstellt mit
def, aufgerufen mitname(). - def
- Das Schlüsselwort zum Erstellen einer Funktion. Nach
deffolgt der Name, dann Klammern und ein Doppelpunkt. - Parameter
- Eine Variable in den Klammern von
def. Sie bekommt ihren Wert erst beim Aufruf der Funktion. - Argument
- Der konkrete Wert, den du beim Aufruf übergibst. In
hallo("Max")ist"Max"das Argument. - return
- Gibt einen Wert aus der Funktion zurück und beendet sie. Ohne
returngibt eine Funktion nichts zurück. - Rückgabewert
- Der Wert, den eine Funktion nach
returnzurückliefert. Kann in einer Variable gespeichert oder direkt verwendet werden. - +=
- Kurzschreibweise für
variable = variable + 1.versuche += 1erhöhtversucheum 1.
Das hast du in Folge 10 gelernt
Ein Rückblick auf Funktionen – und auf das ganze Forscherheft.
Du hast jetzt alle wichtigen Python-Grundlagen in der Hand. Was du kannst:
- …
def: eigene Funktionen schreiben und aufrufen. - … Parameter: Daten in eine Funktion hineingeben.
- …
return: Ergebnisse aus einer Funktion zurückbekommen. - …
+=: Variablen kürzer hochzählen. - … und du hast dein Ratespiel zum dritten Mal verbessert – sauberer als je zuvor! 🏆
Variables, Strings, Zahlen, if/elif/else, while, for, Listen, Dictionaries, Dateien, Funktionen – das sind die Grundbausteine fast aller Programme. Du hast sie alle kennen gelernt!
Bonus-Quiz
Freiwillig! Teste, wie viel du dir aus Folge 10 gemerkt hast.
Diese Fragen sind freiwillig – du kannst auch direkt weitergehen. Kein Druck!
🧠 Was ist der Unterschied zwischen Parameter und Argument?
🧠 Was ist der Wert von x nach x = 5, gefolgt von x += 3?
🧠 Eine Funktion hat kein return. Was gibt ergebnis = meine_funktion() in ergebnis zurück?
Was kommt als Nächstes?
Ein Blick auf Folge 11.
Du hast in zehn Folgen die wichtigsten Python-Grundlagen gelernt. Gut gemacht – das ist schon weit mehr, als die meisten Erwachsenen können! 🎉
Bevor es zu Webseiten oder Hardware-Projekten geht, gibt es noch ein spannendes Thema: Dein Computer kennt nur 0 und 1. Aber wie kann er damit Texte schreiben, Fotos zeigen und Musik abspielen?
Genau das erklärt Folge 11: das Binärsystem, Bits und Bytes, wie Buchstaben als Zahlen gespeichert werden (ASCII) – und warum ein Bild eigentlich eine riesige Zahlentabelle ist.