Warum Funktionen nützlich sind
Warum brauchen wir das?
Ohne Funktionen kopierst du denselben Code immer wieder:
print("=== Menue ===")
print("1) Start")
print("2) Ende")
# ... spaeter nochmal ...
print("=== Menue ===")
print("1) Start")
print("2) Ende")
Probleme:
- viel Tipparbeit
- bei einer Änderung musst du alle Stellen anpassen
- unübersichtlich
Funktionen lösen das: Du packst zusammengehörigen Code unter einen Namen
und startest ihn bei Bedarf mit einem Aufruf.
Definition: Funktion
Definition:
Eine Funktion ist ein benannter Code-Baustein, der eine Aufgabe erledigt.
Du definierst ihn einmal und rufst ihn später beliebig oft auf.
Alltagsbilder:
| Alltag | Programm |
|---|---|
| Toaster | Funktion toast() – immer derselbe Ablauf |
| Waschmaschine | Funktion mit Programm „Buntwäsche“ |
| Schulklingel | ein Signal, viele Reaktionen geplant |
Py: „Eine Funktion ist eine kleine Maschine. Du startest sie, sie arbeitet.“
Lily: „Einmal bauen, oft benutzen.“
Buggy: „Ich rufe Funktionen auf, die ich nie definiert habe – NameError!“
Neue Wörter
Benannter Baustein mit Code fuer eine Aufgabe.
Die Funktion mit def anlegen (Bauplan speichern).
Die Funktion starten: name().
Die eingerueckten Zeilen unter def – der eigentliche Code.
Aufbau: def und Aufruf
Definieren
def begruessung():
print("Hallo Code-Club!")
print("Schoen, dass du da bist.")
| Teil | Bedeutung |
|---|---|
def | „definiere eine Funktion“ |
begruessung | Name der Funktion |
() | Parameterliste (hier noch leer) |
: | Block beginnt |
| eingerückte Zeilen | Körper der Funktion |
Aufrufen
begruessung()
begruessung()
Jedes Mal laufen die beiden print-Zeilen.
Wichtig:
defallein führt den Körper noch nicht aus.- Erst der Aufruf
name()startet ihn.
Komplettes Beispiel
def begruessung():
print("Hallo Code-Club!")
print("Schoen, dass du da bist.")
print("Programm startet")
begruessung()
print("Noch einmal:")
begruessung()
print("Programm ende")
Ungefähre Ausgabe:
Programm startet
Hallo Code-Club!
Schoen, dass du da bist.
Noch einmal:
Hallo Code-Club!
Schoen, dass du da bist.
Programm ende
Was passiert im Computer?
- Python liest
def begruessung(): ...und speichert den Bauplan. - Bei
begruessung()springt es in den Funktionskörper. - Es führt die eingerückten Zeilen aus.
- Danach kehrt es zur nächsten Zeile nach dem Aufruf zurück.
Später lernst du Parameter (Werte hinein) und return (Wert hinaus).
Heute: bündeln und wiederverwenden.
Gute Funktionsnamen
| Weniger gut | Besser |
|---|---|
f() | zeige_menue() |
mach() | begruesse() |
x() | zeige_regeln() |
Der Name sollte die Aufgabe beschreiben.
Eine Aufgabe pro Funktion (Prinzip)
Gut:
zeige_titel()zeige_regeln()
Weniger gut:
- eine Riesenfunktion, die Menü, Datei, Netzwerk und Quiz mischt
Kleine, klare Bausteine sind leichter zu verstehen und zu testen.
Häufige Fehler
| Fehler | Folge |
|---|---|
Doppelpunkt nach () vergessen | SyntaxError |
Aufruf ohne () : begruessung | oft keine Ausführung wie gedacht |
| Funktion aufrufen vor Definition (in einfachen Skripten) | NameError möglich |
| Körper nicht eingerückt | SyntaxError |
Probiere es selbst
Experiment 1
Funktion motto(), die euer Club-Motto printet – zweimal aufrufen.
Experiment 2
Funktion linie(), die ======== ausgibt.
Experiment 3
Zwei Funktionen nacheinander: Begrüßung und Verabschiedung.
Fehlerdetektiv
def test()
print("x")
Lösung
Doppelpunkt fehlt:
def test():
print("x")
Übungen
Level 1
def hi(): mit einem print, einmal aufrufen.
Lösung
def hi():
print("Hi!")
hi()
Level 2
linie() zweimal um einen Text legen.
Lösung
def linie():
print("========")
linie()
print("Mitte")
linie()
Level 3
startbildschirm() mit Titel + 2 Infozeilen, einmal aufrufen.
Beispiel
def startbildschirm():
print("=== CODE-CLUB ===")
print("Fehler sind Hinweise")
print("Viel Erfolg!")
startbildschirm()
Mini-Challenge
Erkläre mit eigenen Worten:
- Was ist eine Funktion?
- Was ist der Unterschied zwischen Definieren und Aufrufen?
- Warum spart das Arbeit?
Zusammenfassung
- Funktionen sind benannte Code-Bausteine.
defdefiniert,name()ruft auf.- Der Körper ist eingerückt.
defführt noch nichts aus – erst der Aufruf.- Gute Namen + eine Aufgabe pro Funktion = klarer Code.
Mini-Quiz
- Was ist ein Funktionskörper?
- Warum
()beim Aufruf? - Nenne zwei Vorteile von Funktionen.
Lösungen
- Die eingerückten Zeilen unter
def. - Sie gehören zum Aufruf (später auch Argumente).
- Weniger Wiederholung, klarere Struktur, leichtere Änderungen.
Idee sitzt! Als Nächstes: Funktionen aufrufen und die Reihenfolge.