„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum kehrt meine rekursive Python -Funktion manchmal keine zurück?

Warum kehrt meine rekursive Python -Funktion manchmal keine zurück?

Gepostet am 2025-02-18
Durchsuche:405

Why Does My Python Recursive Function Sometimes Return None?

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)

Neuestes Tutorial Mehr>

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