Python 查找数字列表的阶乘

Python 查找数字列表的阶乘,python,factorial,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) 但它的回报是: <fun

我有一个数字列表[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没有阶乘,所以它应该返回“”

您的阶乘函数没有名为
项的变量
,我想这就是您想要的:

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
你有三个问题

1函数必须返回事实而不是阶乘

2使用列表“my_numbs”调用函数,但它需要一个整数

3您必须迭代my_numbs以实现2

我猜,-1是一个“列表结束”指示器。在我的例子中,我结束了这个-1的迭代

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
结果

1
1
2
6
24
120

在python中,返回的变量的结果是“return fact”,而不是函数名。函数体中的
item
是什么?为什么不使用
n
1
1
2
6
24
120