我正在使用函数和参数,甚至在函数内部调用时使用简单的代码,我得到了如下错误:第7行,如果ask=='yes': RecursionError:最大递归深度超过比较
如果我输入:是的答案,是的,它可以正常工作,但是当我输入:否并且函数被称为belowe else语句时,我得到错误:第5行,在问题中if ask=='yes': RecursionError:最大递归深度超过比较
我做错了什么?BTW我用谷歌搜索了这个问题,但没有解决问题sys. setpostsionlimited(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。
问题()
是在每次调用中提出一个新问题。print(问题())
只关注第一个问题的答案。当您为第一个问题键入No
时,问题()
被称为提出第二个问题,并将无
返回到您的第一个问题。之后的任何答案都只需提出新问题if ask!=yes
或返回结果给该问题if ask==yes
,但不影响第一个问题中的无
返回。
您可以使用while循环继续对同一问题提出新答案,直到满足条件:
def question():
ask = input("Are you OK?:").lower()
while ask != 'yes':
ask = input("Are you OK?:").lower()
return ask
print(question())