Heim > Backend-Entwicklung > Python-Tutorial > Warum gibt meine rekursive Python-Funktion manchmal „None' zurück?

Warum gibt meine rekursive Python-Funktion manchmal „None' zurück?

DDD
Freigeben: 2024-12-23 16:46:10
Original
796 Leute haben es durchsucht

Why Does My Recursive Python Function Return `None` Sometimes?

Rekursion verstehen und warum sie „Keine“ zurückgibt

Wenn eine Funktion sich selbst aufruft, wird dies als Rekursion bezeichnet. Dies kann eine leistungsstarke Technik sein, aber es ist wichtig, das Konzept der Rückgabewerte zu verstehen, um unerwartete Ergebnisse zu vermeiden.

Im angegebenen Python-Code:

def get_input():
    my_var = input('Enter "a" or "b": ')

    if my_var != "a" and my_var != "b":
        print('You didn\'t type "a" or "b". Try again.')
        get_input()
    else:
        return my_var

print('got input:', get_input())
Nach dem Login kopieren

Wenn der Benutzer „a „ oder „b“, die Funktion funktioniert wie vorgesehen und gibt die Eingabe zurück. Es entsteht jedoch ein Problem, wenn der Benutzer ein ungültiges Zeichen und dann eine gültige Eingabe eingibt. Das Problem ergibt sich aus dem rekursiven Aufruf in der if-Bedingung.

Wenn my_var nicht „a“ oder „b“ ist, fordert die Funktion den Benutzer korrekterweise auf, es erneut zu versuchen. Dem rekursiven Aufruf von get_input() fehlt jedoch eine Rückgabeanweisung für den Rückgabewert der rekursiven Funktion. Ohne eine ordnungsgemäße Rückgabe gibt Python implizit None zurück, wenn die Funktion am Ende abfällt.

Um dies zu beheben, sollte der rekursive Aufruf so geändert werden, dass er das Ergebnis der rekursiven Funktion zurückgibt:

if my_var != "a" and my_var != "b":
    print('You didn\'t type "a" or "b". Try again.')
    return get_input()
Nach dem Login kopieren

Mit dieser Änderung gibt die Funktion my_var korrekt zurück, nachdem der Benutzer eine gültige Eingabe gemacht hat, wodurch die Rückgabe von None verhindert wird.

Das obige ist der detaillierte Inhalt vonWarum gibt meine rekursive Python-Funktion manchmal „None' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage