因此,我创建了一个函数,并且在其中放入了if命令,以检查答案,但是当答案无效时,我想重复该函数,以便再次询问。它应该要求输入A或B,但是例如当我放C时,它应该调用该函数并重复。如何重新询问输入内容?这就是我尝试过的:
def function():
data = input("A/B")
if data == "A":
print("A")
elif data == "B":
print("B")
else:
function() #<-----problem here
答案 0 :(得分:1)
您发布的示例代码以您描述的方式工作。对于涉及返回值的更复杂的函数,我建议以这种方式编写和调用它:
def function():
data = input("A/B")
if data == "A":
return("A")
elif data == "B":
return("B")
else:
return(function())
print(function())
这意味着什么:
return(function())
是该函数将返回该函数下一次调用的结果。该下一个调用可能进而返回该函数的下一个调用的结果。这个概念是recursion的重要组成部分,可能值得将来使用。
答案 1 :(得分:0)
尝试while循环:
ans="C"
while ans!="B" and ans!="A":
ans=input("A/B")
print(ans)
答案 2 :(得分:0)
这是递归函数。要建立一个只需要返回的电话:
Else:
return function()
您可以将函数插入var:
var = function()
并命名为:
return var
答案 3 :(得分:0)
要解决此问题,您无需再次调用该函数,就好像用户输入错误答案的时间过多(我忘记了一些大数字),它将达到堆栈限制。要解决您的问题,您可以简单地使用while循环。下面的代码显示了如何完成此操作:
def function():
while True:
data = input("A/B")
if data == "A":
print("A")
return
elif data == "B":
print("B")
return
从上面的代码中可以看到,我们正在使用一个无限的while循环,该循环将一直循环直到用户输入“ A”或“ B”。如果您不知道该关键字是否可以在函数之前存在,就可以使用return。
我还用手机回答了这个问题,所以如果对此有任何错误感到抱歉。