如何解决查找数字列表的阶乘
我拥有的是:
def factorial (n):
fact = 1
for number in range(1,item+1):
fact = fact * number
return factorial
对于设置:
my_numbs = [0,5,-1]
然后运行功能:
factorial(my_numbs)
但它返回:
<function __main__.factorial>
另一个问题是我让它在for循环中运行,但它表示-1的阶乘为1,但没有-1的阶乘,因此它应返回“”
解决方法
您的阶乘函数没有名为item
的变量,我想这就是您想要的:
def factorial (n):
if n < 0:
return "" #This is as per your specification
fact = 1
for number in range(1,n+1):
fact = fact * number
return fact
此功能将为您提供任意数字'n'的阶乘。 但是,您需要列表中所有元素的阶乘。因此,您只需将函数映射到数字列表即可。
my_numbs = [0,1,2,3,4,5,-1]
result = list(map(factorial,my_numbs))
,
您有3个问题。
1您的函数必须返回事实而不是阶乘。
2您使用列表“ my_numbs”调用函数,但它需要一个整数
3您必须遍历my_numbs才能实现2
我的猜测:看起来-1是“列表结束”指示器。在我的示例中,我在-1上结束了迭代。
-xmx
结果
def factorial(n):
fact = 1
for number in range(1,n+1):
fact = fact * number
return fact
my_numbs = [0,-1]
index = 0
while True:
if my_numbs[index] == -1:
break
print(factorial(my_numbs[index]))
index += 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。