逻辑不起作用

时间:2014-12-10 10:21:12

标签: python recursion

我有一点奇怪的问题。

理想情况下,程序应该在i的值达到10之后终止。但它会一直执行,直到收到以下错误。

ERROR:

  File "test.py", line 6, in recursive
    print "#%s - %s" % (string, num)
RuntimeError: maximum recursion depth exceeded while getting the str of an object

程序:

import os

def recursive(string, num):

    i=0
    while i<10:
        print "#%s - %s" % (string, num)
        recursive(string, num-1)
        i=i+1

recursive("Hello world", 9)

1 个答案:

答案 0 :(得分:1)

您正在递减num,但从未测试过值

你应该有一个不会导致递归调用的终端案例

def recursive(string, num):

    if num == 0:
        return # terminal case

    i=0
    while i<10:
        print "#%s - %s" % (string, num)
        recursive(string, num-1)
        i=i+1

公平地说,这可能不适合您的程序,但我不确定应该做什么