4

如果不满足某个标准,我试图让一个功能重复。例如:

def test():
    print "Hello",
    x = raw_input()
    if x in '0123456789':
        return x
    test()

在这个程序中,如果你第一次输入一个数字,它会返回这个数字。如果您键入一些非数字,它将根据需要重复。但是,如果您输入一些非数字,然后输入一个数字,它将不会返回任何内容。为什么会这样?

4

2 回答 2

8

您需要return test()在函数的尾部返回对 test() 的有效调用返回的值。

于 2012-10-11T22:43:56.270 回答
4

您进行测试调用本身的方式是错误的方式。每次你的程序重新启动函数时,你都会用完另一层堆栈。即使用户从未输入这些字符之一,最终程序也会停止(崩溃)。

def test():
    while True:
        print "Hello",
        x = raw_input()
        if x in '0123456789':
            return x
于 2012-10-11T23:10:14.170 回答