Python 为什么这个代码不打印?

Python 为什么这个代码不打印?,python,recursion,ackermann,Python,Recursion,Ackermann,Ackermann函数已尝试通过以下代码实现 def A(m, n): if m == 0: return n + 1 elif m > 0 and n == 1: A(m - 1, 1) elif m > 0 and n > 0: A(m - 1, A(m, n - 1)) print A(4, 5) 对于if语句的3个分支中的2个分支,您的函数不返回任何内容;只有当m==0时,才显式返回值 您还需要

Ackermann函数已尝试通过以下代码实现

def A(m, n):
    if m == 0:
        return n + 1
    elif m > 0 and n == 1:
        A(m - 1, 1)
    elif m > 0 and n > 0:
        A(m - 1, A(m, n - 1))

print A(4, 5)

对于
if
语句的3个分支中的2个分支,您的函数不返回任何内容;只有当
m==0
时,才显式返回值

您还需要返回递归调用的结果:

def A(m, n):
    if m == 0:
        return n + 1
    elif m > 0 and n == 1:
        return A(m - 1, 1)
    elif m > 0 and n > 0:
        return A(m - 1, A(m, n - 1))

如果没有显式返回,函数将以默认返回值
None

结束。我假设它自动从第一个分支返回某种值。