【发布时间】:2021-03-23 09:07:18
【问题描述】:
我正在使用函数和参数,甚至在内部调用函数时使用简单的代码,我收到如下错误:第 7 行,有问题 如果问=='是': RecursionError:比较中超出了最大递归深度
如果我输入:是的答案,是的,它工作正常,但是当我输入:否并且函数在 else 语句下面被调用时,我得到错误: 第 5 行,有问题 如果问=='是': RecursionError:比较中超出了最大递归深度
我做错了什么? 顺便说一句,我搜索了这个问题并没有解决问题 sys.setrecursionlimit(5000) 并且仍然出现错误:
ask = input("Are you OK?:").lower()
asked = ask
def question(n):
if ask == 'yes':
return n
else:
question(n)
print (question(asked))
我尝试了另一种方法:
def question():
ask = input("Are you OK?:").lower()
if ask != 'yes':
question()
else:
return ask
print(question())
但在这段代码中,只有当我立即回答“是”时它才有效,如果我第一次回答“否”,它会按预期再次询问,当我第二次回答“是”时,它会返回并打印:NONE。
【问题讨论】:
-
如果
ask != 'yes'则该函数将无限期地调用自身(或直到超过最大递归深度)。 -
我现在看到了 :-) 但是,当我将问题放入 def question() 并执行 print(question()) 时,奇怪的事情发生了,当我输入答案时它可以工作,但是当“否”它再次询问,当我回答“是”时返回 NONE。
标签: python-3.x