Ich habe ein paar Probleme, ein paar Dinge in Bezug auf rekursive Funktionen in Python (na ja, ich denke im Allgemeinen) zu verstehen. Ich versuchte, nach der Antwort zu suchen, war mir aber nicht sicher, wie ich danach suchen sollte.Rückgabewert für rekursive Funktionen in Python
Unter dem rekursiven Funktion Beispiel am häufigsten, wenn ich suche:
def sfactorr(j):
if j == 1:
return 1
else:
return j * sfactorr(j-1)
jedes Mal, wenn die Funktion größer als 1 ist, beginnt es wieder, bis j == 1. Aber wenn es 1 trifft, soll nicht die Rückgabewert ist 1? Wenn Sie es ausführen, erhalten Sie natürlich das Ergebnis der ganzen Funktion, aber ich verstehe nicht ganz, warum das so ist.
Mit anderen Worten, wie kommt es, dass es den richtigen Wert zurückgibt und nicht die, die die Basisbedingung zurückgibt?
Dank
Versuchen Sie, 'sfactorr (2)' von Hand Schritt für Schritt auszuwerten. – jwodder
Der Rückgabewert ist "1", wenn Sie "j == 1" drücken, aber beachten Sie, dass Sie das mit "j" multiplizieren. Es gibt ein Video-Tutorial darüber, das ich gerade gestern gesehen habe (für Java, aber die allgemeine Idee steht immer noch) https://youtu.be/ozmE8G6YKww – BorrajaX
'jedes Mal, wenn die Funktion größer als 1 ist, beginnt sie wieder bis j == 1.' ist falsch, was wirklich passiert ist 'jedes Mal, wenn die Funktion von 1 verschieden ist, beginnt sie wieder bis j == 1.' –