1

可能重复:
Python 中的阶乘函数

我需要在 python 中编写一个返回 N! 的程序,而不使用阶乘函数。到目前为止,我已经编写了一个程序,但我一直收到错误消息,local variable "fact" is assigned but never used. fact = 1分配后如何使用?

from pylab import *  


def factorial(n):
    fact = 1

for i in range(n):
    print("i = ", i)
    fact = fact * i

print("The factorial of " + str(n) + " is: " + str(fact))
4

2 回答 2

5
In [37]: def fact(n):
    fac=1
    for i in range(2,n+1):
        fac *=i
    return fac
   ....: 


In [43]: fact(5)
Out[43]: 120

In [44]: fact(6)
Out[44]: 720
于 2012-10-10T02:10:24.593 回答
1

我对python知之甚少,但你应该在这些例子中使用递归。这很简单。递归是一个调用自身的函数

def factorial(n):
    if n== 0 or n == 1:
        return 1
    else:
        return n * factorial(n-1)
于 2012-10-10T02:16:34.887 回答