递归代码无法按预期工作 - Python 3

时间:2016-08-31 14:35:28

标签: python recursion

我是编程的初学者,在这种情况下无法理解为什么这个Python代码不能按预期工作。

我试图通过调用函数中的函数来使用递归;调用该函数n次,并将每个循环将n减1到0,此时它将停止。

相反,我的代码打印'freak'一次,然后我得到'最大递归深度'错误消息。

def print_m():
    print ('freak')

def do_n(arg, n)):
    if n >= 0:
        print (do_n(arg,n))
        n = n - 1

3 个答案:

答案 0 :(得分:7)

递归不是循环!

您应该 n - 1传递给递归调用,而不仅仅是n,而不是在之后从n 中减去一个调用

答案 1 :(得分:1)

n-1作为参数传递给递归调用可以解决问题。

答案 2 :(得分:0)

在第6行的递归调用中,你应该传递print(do_n(arg,n-1))。