4.6.2 Rekursion

Eine Funktion kann sich auch selbst aufrufen. Das nennt man Rekursion.

# Einfache Rekursion
# J. Thomaschewski, 27.07.2025
def runterZaehlen(n):
    if n == 0:
        print('Fertig!')
    else:
        print(n)
        runterZaehlen(n - 1)

runterZaehlen(5)

Ausgabe:
5
4
3
2
1
Fertig!

Das funktioniert deshalb, weil sich die Funktion so lange selbst aufruft, bis n == 0 gilt. Dann endet sie. Aber Achtung: Wenn man nicht für einen Abbruch sorgt, läuft das unendlich weiter und das führt am Ende zu einem Fehler. Hier nochmal zum Verständnis die Zeilen die nacheinander im Programm ausgeführt werden. Daran kann man den Ablauf dann verstehen.

runterZaehlen(5)
 n == 0  False
 print(5)
 runterZaehlen(4)
    n == 0  False
    print(4)
    runterZaehlen(3)
       n == 0  False
       print(3)
       runterZaehlen(2)
          n == 0  False
          print(2)
          runterZaehlen(1)
             n == 0  False
             print(1)
             runterZaehlen(0)
                n == 0  True
                print('Fertig!')

Rekursion auf dem Pi Pico

Nehmen Sie den Pi Pico mit dem OLED-Display und erstellen Sie ein Programm (gerne auch mit Hilfe einer KI) das Rekursion verwendet. Da kann man Rahmen zeichnen, die rekursiv immer kleiner werden oder Tannenbäume mit immer kleiner werdenden Ästen. Probieren Sie es einfach mal aus.

Rekursion versus Rückkopplung

Rekursion und Rückkopplung haben auf den ersten Blick Ähnlichkeiten, sind aber grundlegend verschieden:

Begriff Rekursion Rückkopplung (z. B. Mikrofon & Lautsprecher)
Ursprung Programmierung Akustik / Technik
Ablauf Eine Funktion ruft sich selbst wiederholt auf Ein Signal wird wiederholt durch Mikrofon und Lautsprecher
Steuerung Gesteuert durch Abbruchbedingung (if, return) Unkontrolliert oder schwer steuerbar
Ziel Problem schrittweise lösen Nicht beabsichtigter Effekt
Veränderung Mit jedem Schritt ändern sich die Daten (z. B. n-1) Dasselbe Signal wird erneut aufgenommen und verstärkt
Beispiel runterZaehlen(n-1) Pfeifen beim Mikrofon vor Lautsprecher

Eine Rückkopplung kann als analoge Metapher für Rekursion dienen – besonders zur Veranschaulichung von Wiederholung –, ist aber keine echte rekursive Struktur.