python匿名函数lambda与switch的实现
2018-06-18 01:58:34来源:未知 阅读 ()
1,lambda的语法跟es6的箭头函数差不多
>>> show=lambda x,y: x * y >>> show( 10, 20 ) 200
2,递归求阶乘
>>> def fab( n ): ... if n == 0: ... return 1 ... else: ... return n * fab( n - 1) ... >>> fab( 3 ) 6 >>> fab( 5 ) 120 >>> fab( 6 ) 720 >>>
利用reduce函数,也可以实现累计运算
>>> l = range( 1, 6 ) >>> l [1, 2, 3, 4, 5] >>> def f( x, y ): ... return x * y ... >>> reduce( f, l ) 120 >>>
不需要定义函数,可以用lambda表达式简化
>>> fab = lambda x, y: x * y >>> reduce( fab, [ 1, 2, 3, 4, 5, 6 ] ) 720 >>> reduce( lambda x,y: x *y, [ 1, 2, 3, 4, 5, 6 ] ) 720 >>>
3,字典+函数可以实现switch的分支判断效果
if。。。。else实现一个加减法
#!/usr/bin/python #coding:utf-8 from __future__ import division def add( a, b ): return a + b def sbb( a, b ): return a - b def mul( a, b ): return a * b def div( a, b ): return a / b def oper( x, o, y ): if o == '+': return add( x, y ) elif o == '-': return sbb( x, y ) elif o == '*': return mul( x, y ) elif o == '/': return div( x, y ) else: pass print oper( 10, '/', 20 )
用字典和函数改造成switch的方式
#!/usr/bin/python #coding:utf-8 from __future__ import division def add( a, b ): return a + b def sbb( a, b ): return a - b def mul( a, b ): return a * b def div( a, b ): return a / b oper = { '+' : add, '-' : sbb, '*' : mul, '/' : div } def mySwitch( o, x, y ): #return oper[o]( x, y ) #oper.get(o)等价于oper[0]取字典中的某一项 return oper.get(o)( x, y ) print mySwitch( '/', 10, 20 )
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash