Warum python rekursive Funktion manchmal keine
im Gegensatz zu iterativen Funktionen zurückgeben, rekursive Funktionen stützen sich auf ihre rekursiven Anrufe, um Werte zurückzugeben. Wenn die Funktion mehrmals aufgerufen wird, müssen die Rückgabeteile angemessen behandelt werden, um die gewünschte Ausgabe zu erhalten.
Betrachten Sie den folgenden Python -Code:
def gcdIter(a, b):
a, b = min(a, b), max(a, b)
if b % a == 0:
print(a)
return a
gcdIter(a, b % a)
Diese Funktion zielt darauf ab, den größten gemeinsamen Teil von zwei Zahlen mit Rekursion zu finden. Es kann jedoch keine für bestimmte Eingaben zurückgeben, da der Rückgabewert des rekursiven Anrufs nicht korrekt behandelt wird. print (gcditer (42, 84)) # gibt 42
print(gcdIter(306, 136)) # Returns None
print(gcdIter(42, 84)) # Returns 42
def gcditer (a, b): a, b = min (a, b), max (a, b) Wenn b % a == 0: Druck (a) Rückkehr a Return gcditer (a, b % a)
def gcdIter(a, b):
a, b = min(a, b), max(a, b)
if b % a == 0:
print(a)
return a
return gcdIter(a, b % a)
def gcd_iter (a, b) umgeschrieben werden: return gcd_iter (b, a % b) Wenn b sonst abs (a)
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3