Heim > Artikel > Backend-Entwicklung > Warum gibt mein rekursiver Python-Code keine zurück, obwohl das Zeichen gefunden wurde?
Rekursiver Code gibt „Keine“ zurück: Den Grund verstehen
Der bereitgestellte Python-Code zielt darauf ab, mithilfe eines rekursiven Ansatzes ein bestimmtes Zeichen innerhalb einer Zeichenfolge zu lokalisieren. Es gibt jedoch wiederholt None zurück, obwohl es mit der print-Anweisung „Ich bin jetzt hier“ darauf hinweist, dass es vorhanden ist. Um den zugrunde liegenden Grund für dieses Verhalten zu verstehen, schauen wir uns die Struktur des Codes an und entdecken die Ursache dafür, dass er nicht zurückgibt.
Die Funktion isIn verwendet eine Divide-and-Conquer-Strategie und unterteilt die Zeichenfolge aStr in gleiche Segmente und rekursives Durchsuchen des bezeichneten Abschnitts, bis das Zeichen gefunden oder entfernt wird. Der Druck im Basisfall „Ich bin jetzt hier“ dient als Bestätigung, dass das Zeichen gefunden wurde.
Das Weglassen einer Return-Anweisung in der letzten Zeile erweist sich als entscheidend. Wenn die Funktion das Ende ihres Ausführungspfads erreicht, ohne auf eine explizite Rückgabe zu stoßen, gibt sie standardmäßig „None“ zurück. Dies erklärt, warum True nicht zurückgegeben wird, wenn das Zeichen erfolgreich gefunden wurde.
Um dieses Problem zu beheben, muss eine Return-Anweisung in die letzte Zeile eingefügt werden, wie in der Lösung vorgeschlagen:
<code class="python">return isIn(char, aStr)</code>
Mit diesem Fix gibt die rekursive Funktion den True-Wert entsprechend weiter, wenn sie bei ihrem rekursiven Abstieg auf das gewünschte Zeichen stößt, wodurch die erwartete Rückgabe garantiert und die Standardantwort „None“ vermieden wird.
Das obige ist der detaillierte Inhalt vonWarum gibt mein rekursiver Python-Code keine zurück, obwohl das Zeichen gefunden wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!