我希望这不是一个愚蠢的问题,但是为什么此Python代码中的'return 1'语句返回数字的阶乘? “ return True”也会发生这种情况,据我所知,这等同于“ return 1”
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
答案 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。