Teil 9: Funktionen Advanced
Übung 9.1: Funktion mit Parameter
python
"""
Übung 9.1: Funktion mit Parameter
Aufgabe: Schreibe eine Funktion, die "Hallo, [name]!" zurückgibt.
Konzept: Funktion mit Parameter
"""
def begruesse(name):
"""
Erstellt eine Begrüßung.
Args:
name: Name der Person
Returns:
"Hallo, [name]!"
"""
# DEINE LÖSUNG HIER
pass
# Tests
assert begruesse("Anna") == "Hallo, Anna!", "Fehler: Begrüßung falsch"
assert begruesse("Max") == "Hallo, Max!", "Fehler: Begrüßung falsch"
print("✓ Alle Tests bestanden!")Übung 9.2: Funktion mit mehreren Parametern
python
"""
Übung 9.2: Funktion mit mehreren Parametern
Aufgabe: Schreibe eine Funktion, die den Durchschnitt von zwei Zahlen berechnet: (a + b) / 2
Konzept: Funktion mit mehreren Parametern
"""
def durchschnitt_zwei(a, b):
"""
Berechnet den Durchschnitt von zwei Zahlen.
Args:
a: Erste Zahl
b: Zweite Zahl
Returns:
Durchschnitt (a + b) / 2
"""
# DEINE LÖSUNG HIER
pass
# Tests
assert durchschnitt_zwei(4, 6) == 5.0, "Fehler: (4+6)/2 = 5"
assert durchschnitt_zwei(10, 20) == 15.0, "Fehler: (10+20)/2 = 15"
assert durchschnitt_zwei(0, 10) == 5.0, "Fehler: (0+10)/2 = 5"
print("✓ Alle Tests bestanden!")Übung 9.3: Funktion ruft Funktion auf
python
"""
Übung 9.3: Funktion ruft Funktion auf
Aufgabe: Nutze die verdopple()-Funktion, um (zahl * 2) + 10 zu berechnen.
Konzept: Funktionsaufruf innerhalb einer Funktion
"""
def verdopple(zahl):
"""Verdoppelt eine Zahl."""
return zahl * 2
def verdopple_und_addiere_zehn(zahl):
"""
Verdoppelt eine Zahl und addiert 10.
Args:
zahl: Eine Zahl
Returns:
(zahl * 2) + 10
"""
# DEINE LÖSUNG HIER - nutze verdopple()!
pass
# Tests
assert verdopple_und_addiere_zehn(5) == 20, "Fehler: 5*2+10 = 20"
assert verdopple_und_addiere_zehn(0) == 10, "Fehler: 0*2+10 = 10"
assert verdopple_und_addiere_zehn(3) == 16, "Fehler: 3*2+10 = 16"
print("✓ Alle Tests bestanden!")Übung 9.4: Code Reading (Code lesen)
Aufgabe: Lies den folgenden Code und erkläre, was passiert. Verfolge den Aufruf-Stack (Call Stack).
python
def berechne_quadrat(zahl):
"""Berechnet das Quadrat einer Zahl."""
ergebnis = zahl * zahl
return ergebnis
def berechne_summe_quadrate(a, b):
"""Berechnet die Summe der Quadrate von a und b."""
quadrat_a = berechne_quadrat(a)
quadrat_b = berechne_quadrat(b)
summe = quadrat_a + quadrat_b
return summe
resultat = berechne_summe_quadrate(3, 4)
print(resultat)Fragen:
- Was wird ausgegeben?
- Erkläre den Ablauf: Welche Funktion ruft welche Funktion auf?
- Erstelle eine Tabelle für die Variablen in
berechne_summe_quadrate(3, 4):
| Variable | Wert |
|---|---|
| a | ? |
| b | ? |
| quadrat_a | ? |
| quadrat_b | ? |
| summe | ? |
Übung 9.5: Debugging (Fehler finden)
Aufgabe: Der folgende Code soll die Fläche eines Rechtecks berechnen, aber das Ergebnis ist immer falsch.
python
"""
Übung 9.5: Debugging - Falsche Formel
Aufgabe: Die Fläche eines Rechtecks ist Länge × Breite. Finde den Fehler!
Hinweis: Setze Breakpoints in beiden Funktionen und beobachte die Variablen.
"""
def berechne_flaeche(laenge, breite):
"""Berechnet die Fläche eines Rechtecks."""
flaeche = laenge + breite
return flaeche
def flaeche_mit_rahmen(laenge, breite):
"""Berechnet Fläche und gibt sie formatiert aus."""
ergebnis = berechne_flaeche(laenge, breite)
return f"Die Fläche ist {ergebnis} m²"
# Test
print(flaeche_mit_rahmen(5, 3)) # Sollte "Die Fläche ist 15 m²" sein