Funktionen – Parameter und Rückgabewerte
Informatik · Python · Klassen 10–13 · PRIMM-Methode
🎯 Worum geht's? Klasse 10–13 · 3 Unterrichtsstunden
Nach dieser Seite kannst du …
- den Kopf einer Funktion lesen: Name, Parameter, Rückgabe
- vorhersagen, was eine Funktion bei einem Aufruf zurückgibt
- erklären, was mit übergebenen Werten in der Funktion passiert
- Rekursion Schritt für Schritt verfolgen und Funktionen selbst schreiben
Vorwissen: Variablen, Bedingungen und Schleifen in Python
📝 Aufgaben
Jede Aufgabe hat fünf Schritte: Predict › Run › Investigate › Modify › Make. Wähle eine Aufgabe aus – oder nutze oben die Leiste „Aufgaben: 1, 2, 3 …“.
📐 Das Wichtigste in Kürze
def name(a, b):– Kopf einer Funktion mit zwei Parametern; der eingerückte Block ist der Rumpf.return wertbeendet die Funktion und gibtwertzurück. OhnereturnkommtNonezurück.- Standardwerte:
def f(a, b=1):–bdarf beim Aufruf fehlen. - Rekursion: Eine Funktion ruft sich selbst auf; der Basisfall beendet die Kette.
🏅 Zuletzt verdiente Badges
Lies die Funktionen genau.
Wie viele Parameter hat berechne?
Was gibt die letzte Zeile aus?
gruss gibt etwas aus, aber nichts zurück.Trage die Zahl der Parameter ein und ob die Funktion einen Wert zurückgibt (ja/nein).
| Funktion | Parameter | Rückgabe? |
|---|---|---|
maximum | ||
zuruecksetzen | ||
verbinde | ||
ist_prim |
return wert.Was ist der Unterschied zwischen print und return?
Was gehört zum Kopf einer Funktion?
Der Funktionskopf ist fehlerhaft. Korrigiere ihn, sodass add zwei Zahlen addiert und das Ergebnis zurückgibt.
Schreibe potenz(basis, exp) mit einer Schleife (ohne **): potenz(2, 3) → 8.
exp-mal mit der Basis.Was liefert die Funktion zurück?
Welchen Wert hat r?
i von 1 bis 12 bleibt bei 12 % i kein Rest?Was liefert geheim?
| Aufruf | Rückgabe |
|---|---|
geheim(1) | |
geheim(6) | |
geheim(10) | |
geheim(7) |
Was liefert ohne_return(4)?
Was passiert mit print("nie") in mit_code_danach?
Ergänze eine frühe Rückgabe: Für n <= 0 soll sofort 0 zurückkommen.
return zurückgeben.Schreibe quersumme(n) für eine nicht-negative ganze Zahl, ohne sie in Text umzuwandeln: quersumme(123) → 6.
n % 10 liefert die letzte Ziffer, n // 10 entfernt sie. Wiederhole das, solange n größer als 0 ist.Achte auf die Reihenfolge der Parameter.
Was wird ausgegeben?
prefix wird n-mal angehängt, danach einmal suffix.Was liefern die Aufrufe?
| Aufruf | Rückgabe |
|---|---|
kombiniere("A", "B", 1) | |
kombiniere("xy", "!", 2) | |
kombiniere("", "Z", 4) | |
kombiniere(n=2, suffix="?", prefix="o") |
Wie heißen "Ha", "llo", 3 beim Aufruf?
Müssen die Namen beim Aufruf mit den Parameternamen übereinstimmen?
Ergänze einen vierten Parameter trenner, der zwischen je zwei Wiederholungen steht: kombiniere("Ha", "!", 3, "-") → "Ha-Ha-Ha!".
Schreibe wiederhole(s, n, sep) mit einer Schleife: wiederhole("ho", 3, "!") → "ho!ho!ho".
Was passiert mit a, wenn die Funktion ihren Parameter ändert?
Was wird ausgegeben?
x = x * 2 gibt nur dem Namen x in der Funktion einen neuen Wert.Trage die Werte ein.
| Zeitpunkt | a | x (in verdopple) |
|---|---|---|
| vor dem Aufruf | – | |
| in verdopple am Anfang | ||
| in verdopple nach x = x * 2 | ||
| nach dem Aufruf | – |
x startet mit dem Wert von a, ist aber ein eigener Name.Was passiert, wenn eine Funktion eine übergebene Liste mit liste[0] = 99 ändert?
Wie gibt man einen berechneten Wert heraus?
Ändere verdopple und den Aufruf, sodass a danach 10 ist.
a speichern.Schreibe skaliere(liste, faktor): eine neue Liste, in der jedes Element mit faktor multipliziert ist. Die Originalliste bleibt unverändert.
Ein Parameter mit Standardwert darf beim Aufruf fehlen.
Was gibt Zeile 6 aus?
Was gibt Zeile 7 aus?
b beim Aufruf, hat es den Wert None.Was liefern die Aufrufe?
| Aufruf | Rückgabe |
|---|---|
flaeche(5) | |
flaeche(4, 6) | |
flaeche(2.5) | |
flaeche(b=2, a=3) |
Was passiert, wenn man zwei Funktionen mit demselben Namen definiert?
Was liefert danach f(1, 1)?
Ergänze einen dritten Parameter form mit Standardwert "rechteck". Bei form == "dreieck" soll a * b / 2 herauskommen.
form="rechteck" in den Kopf und prüfe im Rumpf, ob form gleich "dreieck" ist.Schreibe minimum(a, b, c=None): das Minimum von zwei oder drei Zahlen – ohne min().
c nur, wenn es übergeben wurde (c is not None).Die Funktion ruft sich selbst auf.
Was wird ausgegeben?
Trage ein, was jeder Aufruf zurückgibt.
| Aufruf | n | Rückgabe |
|---|---|---|
fak(4) | 4 | |
fak(3) | 3 | |
fak(2) | 2 | |
fak(1) | 1 | |
fak(0) | 0 |
Was passiert ohne Basisfall?
Wie viele Aufrufe von fak entstehen bei fak(5)?
Schreibe fak ohne Rekursion mit einer Schleife.
Schreibe fib(n) rekursiv: fib(0) = 0, fib(1) = 1, sonst fib(n - 1) + fib(n - 2).
Welche Variable x sieht welche Funktion?
Was wird ausgegeben?
x = 5 in aendere_x legt eine lokale Variable an.Trage den ausgegebenen Wert ein und ob er von der globalen oder einer lokalen Variable stammt.
| Aufruf | Ausgabe | global/lokal |
|---|---|---|
1. zeige_x() | ||
2. aendere_x() | ||
3. zeige_x() |
zeige_x hat keine eigene Variable x – sie liest die globale.Wann wird eine lokale Variable wieder entfernt?
Was bewirkt global x in aendere_x?
Ändere aendere_x so, dass die globale Variable geändert wird. Die Ausgabe soll dann 10 5 5 sein.
Ergänze die drei Funktionen für einen Zähler mit der globalen Variable zaehler: erhoehe(), zuruecksetzen(), wert().
zaehler verändern, brauchen global zaehler.Hund erbt von Tier und überschreibt laut.
Was wird ausgegeben?
laut.Was liefern die Aufrufe?
| Aufruf | Rückgabe |
|---|---|
Tier().laut() | |
Hund().laut() | |
Hund().laut(3) |
"Wuff" * 3 wiederholt den Text dreimal.Was bedeutet class Hund(Tier):?
Was ist self?
Ergänze eine Klasse Katze, die von Tier erbt und bei laut() "Miau" zurückgibt.
Tier in Klammern und schreibt laut neu.Schreibe alle_rufen(tiere): eine Liste mit den Ergebnissen von laut() für jedes Tier.
laut() aufrufen und das Ergebnis anhängen. Python wählt automatisch die passende Methode.Kleine Hilfsfunktionen lassen sich kombinieren.
Was gibt Zeile 7 aus?
Was gibt Zeile 8 aus?
Berechne die Rückgaben.
| Ausdruck | Ergebnis |
|---|---|
betrag(-4) | |
betrag(3) | |
groesser(2, 9) | |
groesser(betrag(-10), 5) |
Warum lohnen sich kleine Hilfsfunktionen?
Was liefert groesser(3, 3)?
Ergänze begrenze(wert, minimum, maximum): Liegt wert unter dem Minimum, kommt das Minimum zurück, liegt er darüber, das Maximum, sonst der Wert selbst.
Schreibe ist_palindrom(s) mit zwei Zeigern (ohne [::-1]): "Racecar" → True.
Verfolge die rekursiven Aufrufe.
Was wird ausgegeben?
Trage für jeden Aufruf n % 10 und die Rückgabe ein.
| Aufruf | n % 10 | Rückgabe |
|---|---|---|
quersumme(493) | ||
quersumme(49) | ||
quersumme(4) | – |
Wie viele Aufrufe entstehen bei quersumme(493)?
Was passiert ohne den Basisfall?
Schreibe quersumme ohne Rekursion mit einer while-Schleife.
Schreibe potenz(basis, exp) rekursiv: potenz(2, 10) → 1024.
exp == 0. Sonst gilt: basisexp = basis · basisexp−1.🏅 Deine Badges
Verdiente Badges leuchten auf.
📊 Statistik
↺ Zurücksetzen
Alle gespeicherten Daten werden gelöscht.
📄 Arbeitsblatt erstellen
Wähle aus, welche Bereiche auf das Arbeitsblatt kommen. Es enthält dann alle … Aufgaben dieser Seite aus diesen Bereichen – mit Kästchen zum Ankreuzen, leeren Tabellen und Platz zum Schreiben, ohne Lösungen und Tipps.