递归代码不返回:了解原因
提供的 Python 代码旨在使用递归方法查找字符串中的特定字符。然而,尽管使用 print 语句“i am here now”表明它的存在,但它仍然重复返回 None。为了掌握这种行为背后的根本原因,让我们深入研究代码的结构并揭示其无返回性质的根源。
函数 isIn 采用分而治之的策略,将字符串 aStr 划分为相等的段递归地搜索指定部分,直到找到或消除该字符。基本情况中的打印“我现在在这里”作为找到该角色的确认。
最后一行省略 return 语句被证明是至关重要的。当函数到达其执行轨迹的末尾而没有遇到显式返回时,它本质上默认返回 None。这解释了为什么成功找到字符后没有返回 True。
要解决此问题,必须将 return 语句合并到最后一行,如解决方案所示:
<code class="python">return isIn(char, aStr)</code>
通过此修复,递归函数在递归下降中偶然发现所需字符时将适当地传播 True 值,保证预期返回并避免默认的 None 响应。
以上是尽管找到了字符,为什么我的递归 Python 代码不返回任何内容?的详细内容。更多信息请关注PHP中文网其他相关文章!