Zum Hauptinhalt springen

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:

AlltagProgramm
ToasterFunktion toast() – immer derselbe Ablauf
WaschmaschineFunktion mit Programm „Buntwäsche“
Schulklingelein 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

Funktionfunction

Benannter Baustein mit Code fuer eine Aufgabe.

Definierendefine

Die Funktion mit def anlegen (Bauplan speichern).

Aufrufencall

Die Funktion starten: name().

Funktionskoerperfunction body

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.")
TeilBedeutung
def„definiere eine Funktion“
begruessungName der Funktion
()Parameterliste (hier noch leer)
:Block beginnt
eingerückte ZeilenKörper der Funktion

Aufrufen

begruessung()
begruessung()

Jedes Mal laufen die beiden print-Zeilen.

Wichtig:

  • def allein 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?

  1. Python liest def begruessung(): ... und speichert den Bauplan.
  2. Bei begruessung() springt es in den Funktionskörper.
  3. Es führt die eingerückten Zeilen aus.
  4. 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 gutBesser
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

FehlerFolge
Doppelpunkt nach () vergessenSyntaxError
Aufruf ohne () : begruessungoft keine Ausführung wie gedacht
Funktion aufrufen vor Definition (in einfachen Skripten)NameError möglich
Körper nicht eingerücktSyntaxError

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:

  1. Was ist eine Funktion?
  2. Was ist der Unterschied zwischen Definieren und Aufrufen?
  3. Warum spart das Arbeit?

Zusammenfassung

  • Funktionen sind benannte Code-Bausteine.
  • def definiert, name() ruft auf.
  • Der Körper ist eingerückt.
  • def führt noch nichts aus – erst der Aufruf.
  • Gute Namen + eine Aufgabe pro Funktion = klarer Code.

Mini-Quiz

Mini-QuizWomit definierst du eine Funktion?
Mini-QuizWas passiert bei nur def ohne Aufruf?
  1. Was ist ein Funktionskörper?
  2. Warum () beim Aufruf?
  3. Nenne zwei Vorteile von Funktionen.
Lösungen
  1. Die eingerückten Zeilen unter def.
  2. Sie gehören zum Aufruf (später auch Argumente).
  3. Weniger Wiederholung, klarere Struktur, leichtere Änderungen.

Idee sitzt! Als Nächstes: Funktionen aufrufen und die Reihenfolge.