gpt4 book ai didi

python - 在 Python 中用一行写一个阶乘函数

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:44 25 4
gpt4 key购买 nike

我希望通过以不同方式执行相同的代码来改进我的编码,这不仅是为了帮助我更好地编码,而且是为了理解不同人的代码和他们的编码风格。有人可以解释一下我如何能够纠正类似于下面在一行中发布的阶乘函数吗?也欢迎使用 lambda 函数。

def factorial(number):
fact = 1
for i in range(1, number + 1):
fact *= i
return fact

我知道我可以递归地写这个,但我选择不那样做。

最佳答案

这是我的单行解决方案,没有导入任何东西。

def factorial(n: int):
return n * factorial(n - 1) if n > 1 else 1

它递归直到输入数字为 1,最后返回结果(在 n=0 的情况下,它返回 1,因为 0!=1)。该解决方案还使用三元运算符将 if...else 放入一行。

请注意 python 具有最大递归,因此 factorial(x) 其中 x >= 999 将导致 RecursionError

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

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