只返回有效条目的函数。
代码:
def test():
x = input('1' or '0')
if x == '1'
x = 'yes'
elif x == '0'
x = 'no'
else:
print('Error!')
test()
return x
x = test()
print(x)
如何确保返回x只返回有效条目(1或0)?
此时如果我输入1或0以外的数字,测试函数会调用自身,这将是返回的值,无论此后输入的输入是什么......
为什么会发生这种情况,如何纠正这个问题,因此只返回1为“是”或“0”,对函数调用者来说是“否”?
欢呼声
答案 0 :(得分:3)
您没有在任何地方存储递归调用的结果。你需要改变:
else:
print('Error!')
test()
return x
为:
else:
print('Error!')
x = test()
return x
答案 1 :(得分:2)
使用循环可以更直接地编写,如果用户犯了1000多个错误,奖励也不会失败,但是因为你问:你对test()
的递归调用正在消失递归调用的返回值。你应该x = test()
。