【python】实现阶乘x!
来源:互联网 发布:编程达人 vip教程 编辑:程序博客网 时间:2024/05/01 20:43
y=x!=1*2*3*……*x
1. 循环实现
def f(n): m = 1 for i in range(n+1): m *= i return m
或
def f(n): m=1 while n>1: m=m*n n-=1 return mprint f(5)2. 递归实现
def f(n): if n>1: return n*f(n-1) else: return 1print f(5)
或
def f(n): p = 1 if n > 1: p = n*f(n-1) print p return pprint f(5)
3. reduce方法
def foo(n): return reduce(lambda x,y: x*y, range(1,n+1))
reduce函数:解析
python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。
def myadd(x,y): return x+y sum=reduce(myadd,(1,2,3,4,5,6,7)) print sum
#结果就是输出1+2+3+4+5+6+7的结果即2
当然,也可以用lambda的方法,更为简单:
sum=reduce(lambda x,y:x+y,(1,2,3,4,5,6,7)) print sum
lambda 变量名:表达式
ps:有个列表:['a.b.c.d11u.e.f.g', 'e.f88.g', 'caa3.z.brr', 'z.48.ff.ee']。需要找节点最多的一个(节点间由.分割)。看似简单的工作,要用pythonic的方法来做,还是要对python的内置函数有一定程度的熟悉,比如这里可以用最熟悉不过的max,但是会用到它并不常用的可选参数:key
node_list = ['a.b.c.d11u.e.f.g', 'e.f88.g', 'caa3.z.brr', 'z.48.ff.ee']max_node = max(node_list, key=lambda n: n.count('.'))
在这里,使用key参数改变了max比较列表元素的方法,达到了完成任务的目的
0 0
- 【python】实现阶乘x!
- Python 实现n阶乘
- 阶乘python递归实现
- python实现阶乘
- python实现阶乘阶乘--reduce函数
- python中reduce实现阶乘
- python 简单实现阶乘与幂方
- 使用python实现正整数的阶乘
- python阶乘
- 实现阶乘
- 实现阶乘
- Python 阶乘的实现和递归的最大深度
- Python Tricks(十一)—— 阶乘的实现
- 用Python求阶乘
- python递归求阶乘
- python计算阶乘
- Python 小练习 阶乘
- Python递归求阶乘
- iptables 从链、表开始理解
- iOS 银联支付
- leetcode Median of Two Sorted Arrays
- 测试计划
- js获取上传文件的大小和名称
- 【python】实现阶乘x!
- iOS 手机号码验证
- DB2 客户端工具
- 在sublime text2 中开发前端,设置调用浏览器预览
- DB2笔记之四:DB2字段类型
- iOS 直接拨打号码
- 线段树成段更新 hdu 1698 Just a Hook
- Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现
- 如何自定义button的点击有效区域