重复python函数并返回值

时间:2012-10-11 22:41:58

标签: python

如果不符合某个标准,我试图让函数重复。例如:

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

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

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

您进行测试呼叫的方式是错误的方法。每次程序重新启动该函数时,您将使用另一级别的堆栈。最终,即使用户从未输入其中一个字符,程序也会停止(崩溃)。

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