Python程序的输出为“无”

时间:2018-07-01 15:32:06

标签: python recursion

def fact(n, summ):
    if n == 0:
        print(summ)  -- Prints 55
        return summ
    fact(n-1, summ + n)


print(fact(10, 0))  -- Output None

1 个答案:

答案 0 :(得分:1)

您需要返回fact(n-1, summ + n)作为返回值。如果函数不返回值,则默认为不返回。

def fact(n, summ):
    if n == 0:
        return summ
    return fact(n-1, summ + n)

print(fact(10, 0))

这将输出:

55

另一方面,您的fact函数可以在没有第二个参数的情况下重新实现。以下产生相同的输出:

def fact(n):
    if n == 0:
        return 0
    return n + fact(n-1)

print(fact(10))