Python 中的递归(阶乘函数)
Recursion in Python (factorial function)
我希望这不是一个太愚蠢的问题,但是为什么这个 Python 代码中的 'return 1' 语句 return 是数字的阶乘? 'return True' 也会发生这种情况,据我所知,这等同于 'return 1'
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
n == 0
是递归函数的基本情况。 0 的阶乘为 1:reference
一旦基本情况 returns 1,语句 return n * factorial(n-1)
将具有以下形式:return n * 1
等等。
在 python 中,当你将一个数字乘以 True 时,它的运算就像你乘以一一样,
当你将一个数字乘以 False 时,它会像你乘以零一样运行。
所以这就是为什么即使您使用:
也会得到一个数字的阶乘
return True
而不是
return 1
但是如果你调用 factorial(0) 你会得到 True 而不是 1。
我希望这不是一个太愚蠢的问题,但是为什么这个 Python 代码中的 'return 1' 语句 return 是数字的阶乘? 'return True' 也会发生这种情况,据我所知,这等同于 'return 1'
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
n == 0
是递归函数的基本情况。 0 的阶乘为 1:reference
一旦基本情况 returns 1,语句 return n * factorial(n-1)
将具有以下形式:return n * 1
等等。
在 python 中,当你将一个数字乘以 True 时,它的运算就像你乘以一一样, 当你将一个数字乘以 False 时,它会像你乘以零一样运行。
所以这就是为什么即使您使用:
也会得到一个数字的阶乘return True
而不是
return 1
但是如果你调用 factorial(0) 你会得到 True 而不是 1。