gpt4 book ai didi

python - 在 Python 中使用 Reduce 函数查找阶乘

转载 作者:行者123 更新时间:2023-11-28 21:18:39 24 4
gpt4 key购买 nike

您好,我正在尝试编写一个函数来查找任何给定数字的阶乘积。例如,对于阶乘 (6),我会得到 6*5*3*2*1 的乘积。

所以对于 factorial(3),输出将为 6。

我目前拥有的功能是:

import functools 

def mult(x, y):
return x * y


def factorial(n):
if n == 0:
return 1
else:
functools.reduce(mult(n,factorial(n - 1)))

但我不断收到错误消息,提示 Python 需要 2 个参数,但给出了 1 个。我知道我必须以某种方式使用 range 但我无法弄清楚。如何编辑现有代码以使其正常运行?

最佳答案

你可以很容易地做到这一点:

>>> import functools, operator
>>> functools.reduce(operator.mul, xrange(1, 6))
120

请注意,第一个参数是一个函数(您传递的是函数调用的结果)。第二个参数是一个可迭代。还要注意这样写,不需要递归...

operator.mul 等同于您的mult 函数

关于python - 在 Python 中使用 Reduce 函数查找阶乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26152469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com