我需要使用“减少”功能查找数字的阶乘

时间:2019-01-03 12:21:00

标签: python python-3.x reduce

给出数字“ n”,使用reduce()输出其阶乘。

注意:确保处理零的边缘情况。如您所知,0! = 1

from functools import reduce

n = int(input())
f = reduce(lambda n : n * (n - 1) if n > 1 else n)
print(f)

此外,我需要以下提到的此类型错误的帮助

TypeError: reduce expected at least 2 arguments, got 1

1 个答案:

答案 0 :(得分:0)

reduce需要两个参数。首先是需要两个参数的函数,其次是可迭代的。正确的代码应该是这样的。

from functools import reduce
n = int(input())
f = 1 if n == 0 else reduce(lambda a, b : a*b, range(1, n+1))

print(f)