我是编程的初学者,在这种情况下无法理解为什么这个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
答案 0 :(得分:7)
递归不是循环!
您应该将 n - 1
传递给递归调用,而不仅仅是n
,而不是在之后从n
中减去一个调用
答案 1 :(得分:1)
将n-1
作为参数传递给递归调用可以解决问题。
答案 2 :(得分:0)
在第6行的递归调用中,你应该传递print(do_n(arg,n-1))。