python编程实现n的阶乘_Python阶乘的三种实现方式
以下三种方式分别采用了不同的方法,第一种是最容易理解的,第二种是最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阶乘的三种实现方式相关推荐
- python请输入_python中的三种输入方式
python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...
- python操作数据库的几种方法_python对mysql数据库操作的三种不同方式
原标题:python对mysql数据库操作的三种不同方式 |转载自:博客园 |原文链接:http://www.cnblogs.com/mryrs/p/6951008.html 先要说一下,在这个暑期如 ...
- python中if brthon环境安装包_Ant、Gradle、Python三种打包方式的介绍
今天谈一下Androdi三种打包方式,Ant.Gradle.Python. 当然最开始打包用Ant 很方便,后来转Studio开发,自带很多Gradle插件就用了它,然后随着打包数量越多,打包时间成了 ...
- Python对文件的三种打开方式以及with管理上下文
文件的三种打开方式以及with管理上下文 一.文件的三种打开方式 1.1 只读 f = open(r'D:\pycharm\python\123.txt','r',encoding='utf8') d ...
- python中none算变量吗_在python中对变量判断是否为None的三种方法总结
三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...
- 操作系统课设——编程演示三种管理方式的地址换算过程
核心内容 编程演示三种管理方式的地址换算过程 分页方式的地址换算 分段方式的地址换算 段页式的地址换算 概括 程序主要有三个功能,分别是 分页方式的地址换算,分段方式的地址换算,段页式的地址换算. S ...
- Python selenium —— 一定要会用selenium的等待,三种等待方式解
转自 http://lib.csdn.net/article/48/50937?knId=1313 Python selenium -- 一定要会用selenium的等待,三种等待方式解 发现太多人 ...
- python中字符串输出的三种简单方式
python字符串输出的三种简单方式 第一种: 用'+'号进行字符串的拼接,但只限于字符串,不能进行其他类型的拼接.但是可以进行强制类型转换(字符串的强制转换为str(名字)),再用加号进行拼接. 比 ...
- Spring中的AOP切面编程的三种实现方式
文章目录 Spring中的AOP切面编程的三种实现方式 1.最基本AOP的实现 a.引入jar包 b.编写通知类,这里以后置通知和环绕通知类为例子进行说明 c.在SpringIOC容器中配置 d.测试 ...
- python编程能有什么用_python编程能做什么开发
Python作为一种功能强大,并井且简单易学的编程语言而广受好评,那么Python都能做么?概据起来有以下几个方面. 1.Web开发 使用Python的一个基本应用就是进行Web开发,在国内,大一些的 ...
最新文章
- mysql substring函数截取值后赋给一个declare变量
- 性能飙升160%!阿里云发布第七代ECS、云原生数据库PolarDB-X等重磅新品
- python 正则表达式集合-抄的
- 2-visio使用与卸载
- servlet中使用db4o
- 你的Android HTTPS真的安全吗?(转载)
- 12306自动抢票软件代码实现
- Docker:镜像加速器
- 计算机组装过程分为哪几步,组装新电脑要经过哪些步骤?
- php百度优化,百度技术沙龙第 24 期 PHP 性能优化实践
- 流文件和媒体文件的不一样( flv和mp4,avi的区别)
- abaqus截面惯性矩_Abaqus基本概念汇总
- MSP430 MSP430单片机输入/输出模块 通用I/O端口GPIO LED按键
- 电脑做笔记用什么软件好
- 天池大赛——天猫用户复购预测
- matlab模拟双星问题,物理定律、数学模型告诉你,天下有情人终将分手!
- 在Atollic TrueSTUDIO开发环境中集成STM32CubeProgrammer工具的方法
- Django中的url路由机制------学习mooc中《Python云端系统开发入门》
- Java一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
- C 语言的起源与发展
热门文章
- VMware 桥接网卡 VMnet0丢失问题解决办法
- 无法更新计算机的配置,“windows 无法更新计算机的启动配置。安装无法继续”这样解决...
- Chemex3.4 怎么修改资产设备那原始二维码,扫码可查看该资产详细信息
- Office Diary(工作日记本)
- pythoninstaller打包多个py 文件_Pyinstaller通过spec文件打包py程序(多个py脚本)
- 一个程序员的爱情宣言--程序员的情书
- js 数组去重的几种方法
- Magic ship
- 再见Logging ! Python 记录日志该换这个了!
- 关于rospy等库文件倒入pycharm的办法