als Anfänger beschäftige ich mich gerade mit der Rekursion. Was eine Rekursion ist, weiß ich, aber ich verstehe den genauen Ablauf von folgendem Code nicht. Vielleicht hat jemand die Muße mir jeden Schritt der ausgeführt wird zu verschriftlichen.. ich glaube anders verstehe ich es nicht.
Die Funktion ist fehlerfrei, mir gehts nur ums Verständnis.
1. Wie sieht jeder einzelne Schritt aus der durchgeführt wird + was ist im Zwischenspeicher?
2. Wofür genau brauche ich das n%10 vor dem sum_func(n//10)? (Ohne komme ich aufs falsche Ergebnis, aber wieso?)
Was die Funktion letztlich tut:
Übergabe von 4321 an Funktion, diese rechnet dann 4+3+2+1 und gibt 10 als Ergebnis zurück
def sum_func(n):if len(str(n))==1:return n
else:return n %10+ sum_func(n//10)print(sum_func(4321))
LG,
Fin
P.S.: Das Debuggen hatte mir keine Erleuchtung bringen können.
Frage
Finux
Hallo,
als Anfänger beschäftige ich mich gerade mit der Rekursion. Was eine Rekursion ist, weiß ich, aber ich verstehe den genauen Ablauf von folgendem Code nicht. Vielleicht hat jemand die Muße mir jeden Schritt der ausgeführt wird zu verschriftlichen.. ich glaube anders verstehe ich es nicht.
Die Funktion ist fehlerfrei, mir gehts nur ums Verständnis.
1. Wie sieht jeder einzelne Schritt aus der durchgeführt wird + was ist im Zwischenspeicher?
2. Wofür genau brauche ich das n%10 vor dem sum_func(n//10)? (Ohne komme ich aufs falsche Ergebnis, aber wieso?)
Was die Funktion letztlich tut:
Übergabe von 4321 an Funktion, diese rechnet dann 4+3+2+1 und gibt 10 als Ergebnis zurück
LG,
Fin
P.S.: Das Debuggen hatte mir keine Erleuchtung bringen können.
Bearbeitet von Finux3 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.