查找数字列表的阶乘

时间:2020-09-04 06:12:50

标签: python factorial

我有一个数字列表[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,1,2,3,4,5,-1]

然后运行功能:

factorial(my_numbs)

但它返回:

<function __main__.factorial>

另一个问题是我让它在for循环中运行,但它表示-1的阶乘为1,但没有-1的阶乘,因此它应返回“”

2 个答案:

答案 0 :(得分:0)

您的阶乘函数没有名为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))

答案 1 :(得分:0)

您有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,2,3,4,5,-1]

index = 0
while True:
    if my_numbs[index] == -1:
        break

    print(factorial(my_numbs[index]))
    index += 1
相关问题