首页 > 解决方案 > Python 程序的输出为“无”

问题描述

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


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

标签: pythonrecursion

解决方案


您需要fact(n-1, summ + n)作为返回值返回。如果一个函数没有返回值,那么它默认返回 None。

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))

推荐阅读