我正在尝试使一个函数在某些条件不满足时重复执行。例如:
def test():
print "Hello",
x = raw_input()
if x in '0123456789':
return x
test()
在这个程序中,如果你第一次输入一个数字,它会返回这个数字。如果你输入了一些非数字字符,它将按照你的期望重复输出。然而,如果你先输入了一些非数字字符,然后再输入数字,它将不会返回任何内容。为什么会出现这种情况呢?
我正在尝试使一个函数在某些条件不满足时重复执行。例如:
def test():
print "Hello",
x = raw_input()
if x in '0123456789':
return x
test()
在函数的尾部使用return test()
来返回有效调用test()所返回的值。
您目前进行测试调用的方式是错误的。每次程序重新启动函数时,都会使用另一个堆栈级别。最终,即使用户从未输入这些字符,程序也会停止(崩溃)。
def test():
while True:
print "Hello",
x = raw_input()
if x in '0123456789':
return x
test()
替换为return test()
,它应该可以正常工作。 - Holger