Python中的递归(阶乘函数)

时间:2020-07-10 01:31:05

标签: python recursion factorial

我希望这不是一个愚蠢的问题,但是为什么此Python代码中的'return 1'语句返回数字的阶乘? “ return True”也会发生这种情况,据我所知,这等同于“ return 1”

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

2 个答案:

答案 0 :(得分:1)

n == 0是递归函数的基本情况。阶乘0是1:reference

一旦基本案例返回1,则语句return n * factorial(n-1)的形式为:return n * 1,依此类推。

答案 1 :(得分:0)

在python中,当您将数字乘以True时,其作用就像您将数字乘以1一样, 当您将数字乘以False时,其操作方式将与您乘以零时一样。

所以这就是为什么即使使用也会得到一个阶乘af的原因:

return True

代替

return 1

但是如果您调用阶乘(0),则会得到True,而不是1。