Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt meine rekursive Funktion manchmal keine zurück?
Warum gibt eine rekursive Funktion None zurück?
In Ihrem bereitgestellten Code tritt bei der Funktion get_input() ein Problem auf, bei dem sie gelegentlich None zurückgibt. Dies geschieht, wenn der Benutzer zunächst einen ungültigen Wert eingibt und dann „a“ oder „b“ eingibt. Um zu verstehen, warum, schauen wir uns die Funktion genauer an.
Die Funktion get_input() fordert den Benutzer auf, „a“ oder „b“ einzugeben. Wenn die Eingabe nicht übereinstimmt, gibt es eine Nachricht aus und ruft sich selbst rekursiv auf, um die Eingabe erneut abzurufen. Dieser rekursive Ablauf stellt sicher, dass der Benutzer eine gültige Eingabe macht.
Das Problem tritt in der if-Anweisung innerhalb der Funktion auf. Wenn der Benutzer zunächst einen ungültigen Wert eingibt und die Funktion sich selbst rekursiv aufruft, gibt der rekursive Aufruf nichts zurück. Stattdessen fällt es vom Ende der Funktion ab.
In Python ist das Abfallen vom Ende einer Funktion gleichbedeutend mit der Rückgabe von None. Das bedeutet, dass die Funktion get_input() None zurückgibt, wenn der Benutzer zum ersten Mal einen ungültigen Wert eingibt.
Um dieses Problem zu beheben, müssen Sie sicherstellen, dass der rekursive Aufruf einen Wert zurückgibt. Ersetzen Sie in Ihrer if-Anweisung die folgende Zeile:
get_input()
Durch Folgendes:
return get_input()
Diese Änderung stellt sicher, dass der rekursive Aufruf das Ergebnis des nachfolgenden Aufrufs zurückgibt die richtige Eingabe („a“ oder „b“) oder Keine, wenn der Benutzer weiterhin ungültige Werte eingibt.
Das obige ist der detaillierte Inhalt vonWarum gibt meine rekursive Funktion manchmal keine zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!