为什么递归函数返回 None?
在您提供的代码中, get_input() 函数遇到偶尔返回 None 的问题。当用户最初输入无效值然后输入“a”或“b”时,就会发生这种情况。为了理解原因,让我们更详细地检查该函数。
函数 get_input() 提示用户输入“a”或“b”。如果输入不匹配,它会打印一条消息并递归调用自身以再次获取输入。此递归流程可确保用户提供有效的输入。
问题出现在函数内的 if 语句中。当用户最初输入无效值并且函数递归调用自身时,递归调用不会返回任何内容。相反,它会从函数的末尾脱落。
在 Python 中,从函数的末尾脱落相当于返回 None。这意味着当用户第一次输入无效值时,get_input() 函数将返回 None。
要解决此问题,您需要确保递归调用返回一个值。在 if 语句中,将以下行替换:
get_input()
替换为以下内容:
return get_input()
此修改可确保递归调用返回后续调用的结果,该结果将是正确的输入(“a”或“b”)或无(如果用户不断输入无效值)。
以上是为什么我的递归函数有时不返回任何内容?的详细内容。更多信息请关注PHP中文网其他相关文章!