Heim > Backend-Entwicklung > Python-Tutorial > Warum gibt mein rekursiver Python-Code keine zurück, obwohl das Zeichen gefunden wurde?

Warum gibt mein rekursiver Python-Code keine zurück, obwohl das Zeichen gefunden wurde?

DDD
Freigeben: 2024-10-26 04:40:02
Original
230 Leute haben es durchsucht

Why Does My Recursive Python Code Return None Despite Finding the Character?

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>
Nach dem Login kopieren

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!

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