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 に答える