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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。