微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查找数字列表的阶乘

如何解决查找数字列表的阶乘

我有一个数字列表[0,1,2,3,4,5,-1]

试图创建一个遍历数字列表并查找阶乘的函数

我拥有的是:

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 举报,一经查实,本站将立刻删除。