介绍
本篇文章为大家展示了如何在Python中计算N的阶乘,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1)使用循环计算阶乘
def 压裂(N): r 才能=1 if 才能;n<=1: ,,,if n==0,趁机n==1: ,,,,,return 1 ,,,: ,,,,,印刷(& # 39;n 不能小于0 & # 39;) 其他的才能: ,,,for 小姐:拷贝范围(1,n + 1): ,,,,,r *=我 ,,,return r 打印(压裂(5)),,, 打印(压裂(6)) 打印(压裂(7))
120
720
5040
引用>2)使用递归计算阶乘
def 压裂(n): if 才能;n<=1: ,,,if n==0,趁机n==1: ,,,,,return 1 ,,,: ,,,,,印刷(& # 39;n 不能小于0 & # 39;) 其他的才能: ,,,return n *,压裂(n - 1) ,, 打印(压裂(5)) 打印(压裂(6)) 打印(压裂(7))120
720
5040
引用>3)调用减少函数计算阶乘
说明:Python在functools模块提供了减少()函数,该函数使用指定函数对序列对象进行累计。
查看函数信息:
import functools print(帮助(functools.reduce)Help 提醒built-in function reduce 拷贝module _functools: 减少(…) 减少才能(函数,序列[,初始]),→价值 ,, Apply 才能a function  of two arguments cumulatively 用,items of a 序列, 得到left 才能用吧,,so as 用reduce 从而sequence 用a single 价值。 For 例如,,才能减少(lambda , x,, y。, x + y,[1,, 2,, 3,, 4,, 5]),计算 ,,((((1 + 2)+(3)+ 4)+ 5)只If initial is 现在,it is placed before 从而物品 of 才能;从而,sequence 拷贝,并计算,以及serves as a default when sequence 才能;is 空的。
import functools def fn (x, y): return 才能;x * y def 压裂(n): if 才能;n<=1: ,,,if n==0,趁机n==1: ,,,,,return 1 ,,,: ,,,,,印刷(& # 39;n 不能小于0 & # 39;) 其他的才能: ,,,return functools.reduce (fn,范围(1,n + 1)) ,, 打印(压裂(5)) 打印(压裂(6)) 打印(压裂(7))120
720
5040
引用>#,使用,lambda 简写 import functools def 压裂(n): if 才能;n<=1: ,,,if n==0,趁机n==1: ,,,,,return 1 ,,,: ,,,,,印刷(& # 39;n 不能小于0 & # 39;) 其他的才能: ,,,return functools.reduce (lambda , x,, y。, x * y,范围(1,n + 1)) ,, 打印(压裂(5)) 打印(压裂(6)) 打印(压裂(7))120
720
5040
引用><强>补充:python求n的阶乘并输出_python求n的阶乘强>
阶乘是基斯顿·卡曼(基督教Kramp, 1760 ~ 1826年)于1808年发明的运算符号,是数学术语。
一个正整数的阶乘(!)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n !.
下面我们来看一下使用Python计算n的阶乘的方法:
第一种:利用functools工具处理进口functools
result =, (lambda k:, functools.reduce (int.__mul__,,范围(1,k +, 1),, 1)) (5) 打印(结果)' ' '第二种:普通的循环x=1
y =, int(输入(“请输入要计算的数:“)) for 小姐:拷贝范围(1,y +, 1): x =x *,我 打印(x)第三种:利用递归的方式def func (n):
if n ==, 0,趁机n ==, 1: return 1 其他: return (n *, func (n 作用;1)) 时间=a func (5) print ()上述内容就是如何在Python中计算N的阶乘,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
如何在Python中计算N的阶乘