#本文档计算N的阶乘,
import functools
#利用for循环计算
def fract(n):
r = 1
if n<1 :
print("N不能小于1")
return
else:
for i in range(1,n + 1):
r *= i
#print(r)
return r
#递归调用
def fract1(n):
r = 1
if n<1 :
print("N不能小于1")
return
elif n == 1:
return 1
else:
r = fract1(n-1) * n
return r
#调用functools.reduce函数
def fn( x, y):
return x*y
def fract2(n):
r = 1
if n<1 :
print("N不能小于1")
return
else:
return functools.reduce(fn,range(1,n+1))
#使用lambda关键字
def fract3(n):
r = 1
if n<1:
print("n不能小于1")
return
else:
return functools.reduce(lambda x,y: x*y,range(1,n+1))
#根据不同的函数调用输出
print(fract(4))
print(fract1(5))
print(fract2(6))
print(fract3(7))