Python 我需要使用函数“求一个数的阶乘”;减少;
给定一个数字“n”,使用reduce()输出其阶乘 注意:确保处理零的边缘情况。如你所知,0!=一,Python 我需要使用函数“求一个数的阶乘”;减少;,python,python-3.x,reduce,Python,Python 3.x,Reduce,给定一个数字“n”,使用reduce()输出其阶乘 注意:确保处理零的边缘情况。如你所知,0!=一, 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 reduce需要两
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
reduce
需要两个参数。首先是一个需要两个参数的函数,然后是一个iterable。正确的代码应该是这样的
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)
RTL(ovely)M:您正在混淆递归函数和
reduce
。如何,我不确定。如果n>0,则可以使用f=reduce(lambda x,y:x*y,range(1,n+1)),否则为1
。规范复制包含许多计算阶乘的方法。。包括那些使用reduce
-我认为没有理由在这里创建“特定”问题。请在询问之前进行研究-这将帮助您更快。当n
为零时如何处理?谢谢您的帮助。如何更正下面提到的代码:从functools导入reduce n=int(input())def fact(n):if(n==0):返回1其他:返回n*fact(n-1)f=reduce(λn:n*n-1)打印(f)