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
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden