Python 怎么定义计算N的阶乘的函数
定义计算N的阶乘的函数
1)使用循环计算阶乘
deffrac(n):
r=1
ifn<=1:
ifn==0orn==1:
return1
else:
print('n不能小于0')
else:
foriinrange(1,n+1):
r*=i
returnr
print(frac(5))
print(frac(6))
print(frac(7))
120
720
5040
2)使用递归计算阶乘
deffrac(n):
ifn<=1:
ifn==0orn==1:
return1
else:
print('n不能小于0')
else:
returnn*frac(n-1)
print(frac(5))
print(frac(6))
print(frac(7))
120
720
5040
3)调用reduce函数计算阶乘
说明:Python在functools模块提供了reduce()函数,该函数使用指定函数对序列对象进行累计。
查看函数信息:
importfunctools print(help(functools.reduce))
Helponbuilt-infunctionreduceinmodule_functools: reduce(...) reduce(function,sequence[,initial])->value Applyafunctionoftwoargumentscumulativelytotheitemsofasequence, fromlefttoright,soastoreducethesequencetoasinglevalue. Forexample,reduce(lambdax,y:x+y,[1,2,3,4,5])calculates ((((1+2)+3)+4)+5).Ifinitialispresent,itisplacedbeforetheitems ofthesequenceinthecalculation,andservesasadefaultwhenthe sequenceisempty.
importfunctools
deffn(x,y):
returnx*y
deffrac(n):
ifn<=1:
ifn==0orn==1:
return1
else:
print('n不能小于0')
else:
returnfunctools.reduce(fn,range(1,n+1))
print(frac(5))
print(frac(6))
print(frac(7))
120
720
5040
#使用lambda简写
importfunctools
deffrac(n):
ifn<=1:
ifn==0orn==1:
return1
else:
print('n不能小于0')
else:
returnfunctools.reduce(lambdax,y:x*y,range(1,n+1))
print(frac(5))
print(frac(6))
print(frac(7))
120
720
5040
补充:python求n的阶乘并输出_python求n的阶乘
阶乘是基斯顿·卡曼(ChristianKramp,1760~1826)于1808年发明的运算符号,是数学术语。
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
下面我们来看一下使用Python计算n的阶乘的方法:
第一种:利用functools工具处理importfunctools
result=(lambdak:functools.reduce(int.__mul__,range(1,k+1),1))(5) print(result)```
第二种:普通的循环x=1
y=int(input("请输入要计算的数:"))
foriinrange(1,y+1):
x=x*i
print(x)
第三种:利用递归的方式deffunc(n):
ifn==0orn==1: return1 else: return(n*func(n-1)) a=func(5) print(a)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
