如果不符合某个标准,我试图让函数重复。例如:
def test():
print "Hello",
x = raw_input()
if x in '0123456789':
return x
test()
在此程序中,如果您第一次键入数字,它将返回该数字。如果您键入一些非数字,它将根据需要重复。但是,如果您输入一些非数字然后输入数字,它将不返回任何内容。为什么会这样?
答案 0 :(得分:8)
你需要在函数尾部return test()
返回有效调用返回test()的值。
答案 1 :(得分:4)
您进行测试呼叫的方式是错误的方法。每次程序重新启动该函数时,您将使用另一级别的堆栈。最终,即使用户从未输入其中一个字符,程序也会停止(崩溃)。
def test():
while True:
print "Hello",
x = raw_input()
if x in '0123456789':
return x