以下三种方式分别采用了不同的方法,第一种是最容易理解的,第二种是最pythonic的,而第三种则是易用性最高的。第三种直接定义一个阶乘函数,随时都可以调用,从而得到不同值。

方法一:

普通方法:

a = 1

n = 5

for i in range(1,n+1):

a = a * i

print(a)

20

方法二:

reduce()函数:

from functools import reduce

n = 5

print(reduce(lambda x,y:x*y,range(1,n+1)))

120

reduce(function, iterable[, initializer]) 函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

>>>def add(x, y) : # 两数相加

... return x + y

>>> reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5

15

>>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数

15

注意:在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数

方法三:

采用函数的递归:

def factorial(n):

if n == 0 or n == 1:

return 1

else:

return (n*factorial(n-1))

a = factorial(5)

print(a)

120

需要注意的是,函数的递归要有终止机制,否则会一直递归下去。如上个程序中给定了if判断语句来终止循环的进行。

python编程实现n的阶乘_Python阶乘的三种实现方式相关推荐

  1. python请输入_python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  2. python操作数据库的几种方法_python对mysql数据库操作的三种不同方式

    原标题:python对mysql数据库操作的三种不同方式 |转载自:博客园 |原文链接:http://www.cnblogs.com/mryrs/p/6951008.html 先要说一下,在这个暑期如 ...

  3. python中if brthon环境安装包_Ant、Gradle、Python三种打包方式的介绍

    今天谈一下Androdi三种打包方式,Ant.Gradle.Python. 当然最开始打包用Ant 很方便,后来转Studio开发,自带很多Gradle插件就用了它,然后随着打包数量越多,打包时间成了 ...

  4. Python对文件的三种打开方式以及with管理上下文

    文件的三种打开方式以及with管理上下文 一.文件的三种打开方式 1.1 只读 f = open(r'D:\pycharm\python\123.txt','r',encoding='utf8') d ...

  5. python中none算变量吗_在python中对变量判断是否为None的三种方法总结

    三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...

  6. 操作系统课设——编程演示三种管理方式的地址换算过程

    核心内容 编程演示三种管理方式的地址换算过程 分页方式的地址换算 分段方式的地址换算 段页式的地址换算 概括 程序主要有三个功能,分别是 分页方式的地址换算,分段方式的地址换算,段页式的地址换算. S ...

  7. Python selenium —— 一定要会用selenium的等待,三种等待方式解

    转自  http://lib.csdn.net/article/48/50937?knId=1313 Python selenium -- 一定要会用selenium的等待,三种等待方式解 发现太多人 ...

  8. python中字符串输出的三种简单方式

    python字符串输出的三种简单方式 第一种: 用'+'号进行字符串的拼接,但只限于字符串,不能进行其他类型的拼接.但是可以进行强制类型转换(字符串的强制转换为str(名字)),再用加号进行拼接. 比 ...

  9. Spring中的AOP切面编程的三种实现方式

    文章目录 Spring中的AOP切面编程的三种实现方式 1.最基本AOP的实现 a.引入jar包 b.编写通知类,这里以后置通知和环绕通知类为例子进行说明 c.在SpringIOC容器中配置 d.测试 ...

  10. python编程能有什么用_python编程能做什么开发

    Python作为一种功能强大,并井且简单易学的编程语言而广受好评,那么Python都能做么?概据起来有以下几个方面. 1.Web开发 使用Python的一个基本应用就是进行Web开发,在国内,大一些的 ...

最新文章

  1. mysql substring函数截取值后赋给一个declare变量
  2. 性能飙升160%!阿里云发布第七代ECS、云原生数据库PolarDB-X等重磅新品
  3. python 正则表达式集合-抄的
  4. 2-visio使用与卸载
  5. servlet中使用db4o
  6. 你的Android HTTPS真的安全吗?(转载)
  7. 12306自动抢票软件代码实现
  8. Docker:镜像加速器
  9. 计算机组装过程分为哪几步,组装新电脑要经过哪些步骤?
  10. php百度优化,百度技术沙龙第 24 期 PHP 性能优化实践
  11. 流文件和媒体文件的不一样( flv和mp4,avi的区别)
  12. abaqus截面惯性矩_Abaqus基本概念汇总
  13. MSP430 MSP430单片机输入/输出模块 通用I/O端口GPIO LED按键
  14. 电脑做笔记用什么软件好
  15. 天池大赛——天猫用户复购预测
  16. matlab模拟双星问题,物理定律、数学模型告诉你,天下有情人终将分手!
  17. 在Atollic TrueSTUDIO开发环境中集成STM32CubeProgrammer工具的方法
  18. Django中的url路由机制------学习mooc中《Python云端系统开发入门》
  19. Java一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
  20. C 语言的起源与发展

热门文章

  1. VMware 桥接网卡 VMnet0丢失问题解决办法
  2. 无法更新计算机的配置,“windows 无法更新计算机的启动配置。安装无法继续”这样解决...
  3. Chemex3.4 怎么修改资产设备那原始二维码,扫码可查看该资产详细信息
  4. Office Diary(工作日记本)
  5. pythoninstaller打包多个py 文件_Pyinstaller通过spec文件打包py程序(多个py脚本)
  6. 一个程序员的爱情宣言--程序员的情书
  7. js 数组去重的几种方法
  8. Magic ship
  9. 再见Logging ! Python 记录日志该换这个了!
  10. 关于rospy等库文件倒入pycharm的办法