Eine Funktion, die sich selbst aufruft
Jede Stufe gibt eine um 1 kleinere Zahl weiter, und der Name down steht dabei in down selbst. So schreibt down(3) zuerst 3, dann 2, dann 1.
Die Zeile if n == 0: return ist der Stopp. Ist n gleich 0, läuft diese Zeile, und down wird nicht noch einmal benutzt. Lässt du sie weg, hören die Stufen nicht auf, und das Programm endet nicht. Diese kaputte Form steht unten nicht.
def down(n):
if n == 0:
return
print(n)
down(n - 1)
down(3)
Auf dem Bildschirm steht 3, dann 2, dann 1. print läuft vor dem nächsten down. down(1) schreibt 1 und kommt dann zu down(0). down(0) trifft den Stopp, schreibt nichts, und das Programm endet.
Setze print in die Zeile nach down(n - 1). Die kleineren Zahlen werden zuerst geschrieben, weil jede Stufe wartet, bis die innere fertig ist.
def down(n):
if n == 0:
return
down(n - 1)
print(n)
down(3)
Auf dem Bildschirm steht 1, dann 2, dann 3. down(0) schreibt weiterhin nichts. Die print-Zeilen laufen auf dem Rückweg, also steht 1 vor 2 und 2 vor 3.
down(0) für sich erreicht print nie. Der Stopp läuft sofort.
def down(n):
if n == 0:
return
print(n)
down(n - 1)
down(0)
Der Bildschirm bleibt leer, und das Programm endet. n ist schon 0, also werden print und das nächste down übersprungen.
Die Bildschirme verlesen
Das zweite Programm ist nicht 3, dann 2, dann 1. Diese Reihenfolge gehört zum ersten, wo print vorn steht. Streichst du if n == 0: return aus einem der Programme, enden die Stufen nicht. Diese Fassung lässt du unausgeführt.
Die nächste Seite ist eine Liste von Werten. Hier geht es nur um eine Funktion, die ihren eigenen Namen benutzt, und um die Zeile, die sie bei 0 anhält.
Die Zahlen verfolgen
- Was schreibt das erste Programm, zuerst und dann?
- Was schreibt das zweite Programm, zuerst und dann?
- Was schreibt das dritte Programm?
- Du streichst den Stopp bei 0. Endet das Programm?
Was down tut
Der Name down in down, mit n - 1, geht von 3 bis 1 hinunter. print davor schreibt 3, dann 2, dann 1. print danach schreibt 1, dann 2, dann 3. if n == 0: return ist der Grund, warum das Programm endet. down(0) schreibt nichts.
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt