Wie ein Computer denkt
Wie sich ein Computer merkt, was er gerade tut — und wie er den Weg zurückfindet.
Klick dich mit den Pfeiltasten durch → · Es gibt was zum Ausprobieren.
Eine Funktion ist ein kleiner Auftrag, den du dem Computer gibst — mit einem Namen.
def begrüße():
print("Hallo!")
„begrüße()" heißt dann: Mach diesen Auftrag jetzt. Der Computer springt rein, erledigt ihn, und kommt dahin zurück, wo er losgesprungen ist.
Ein Auftrag ruft oft mitten drin einen anderen auf:
def pizza_machen():
teig_machen() # ← hier springt er weg …
belegen() # ← … und muss GENAU hierher zurück
Und teig_machen() ruft vielleicht wieder zutaten_mischen() … Es wird schnell verschachtelt.
Der Computer braucht ein Gedächtnis, das sich jede offene Stelle merkt. 🧠
Stell dir einen Stapel Teller vor:
Ruf Aufträge auf und lass sie fertig werden — schau, wie der Stapel wächst und schrumpft.
Tipp: erst mehrmals „aufrufen", dann „fertig" — wie beim echten Programm.
Das heißt Rekursion. Beispiel — die Fibonacci-Zahlen (jede ist die Summe der zwei davor):
def fib(n):
if n <= 1:
return n # ← die STOPP-Regel
return fib(n-1) + fib(n-2)
Jeder Aufruf legt wieder einen Teller drauf — der Stapel wächst tief nach unten, bis die Stopp-Regel greift. Dann werden die Teller von oben abgeräumt und die Zahlen zusammengezählt.
Der Auftrag muss bei jedem Selbst-Aufruf kleiner werden und irgendwann aufhören, sich selbst zu rufen:
if n <= 1:
return n # Hier hört das Rufen auf!
Wenn der Turm aus Tellern zu hoch wird, fällt er um.
Der Stapel hat eine Höhengrenze (bei Python ungefähr 1000 Teller). Vergisst man die Stopp-Regel, stapelt der Computer immer weiter, bis:
RecursionError: maximum
recursion depth exceeded
Frei übersetzt: „Der Tellerturm ist zu hoch geworden — ich kann nicht mehr!"
Fertig! Geh zurück zu Folie 5 und spiel nochmal mit dem Stapel — jetzt weißt du, was da passiert. 🦀