python的一些重点知识
来源:互联网 发布:纹理指纹匹配算法 编辑:程序博客网 时间:2024/05/21 19:37
列表包含
a = [9,-2,1,2,3,4,-1]b = [10*i for i in a if i>0]print bprint "#"*50for j in b: print j
结果:
[90, 10, 20, 30, 40]##################################################9010203040
生成器表达式
a = [9,-2,1,2,3,4,-1]b = (10*i for i in a if i>0)print bprint "#"*50print b.next()print b.next()print "#"*50for j in b: print j
结果:
<generator object <genexpr> at 0x0000000001E70CA8>##################################################9010##################################################203040
注意与列表包含进行对比
生成器表达式转成列表包含
a = [9,-2,1,2,3,4,-1]b = (10*i for i in a if i>0)print b#print "#"*50#print b.next()#print b.next()print "#"*50c = list(b)print cprint "#"*50for j in c: print j
结果:
<generator object <genexpr> at 0x0000000001CC0CA8>##################################################[90, 10, 20, 30, 40]##################################################9010203040
协程,装饰器,生成器
一个比较集中的例子:
def coroutine(func): def start(*args,**kwargs): g = func(*args,**kwargs) g.next() return g return start@coroutinedef receiver(): print "ready to receive." try: while True: n = (yield) print "got %s " % n except GeneratorExit: print("Receiver done")r = receiver()r.send("hello world")r.close()r.send("4")
结果:
ready to receive.got hello world Receiver doneTraceback (most recent call last): File "D:/pythonshell/project/test", line 21, in <module> r.send("4")StopIteration
因为调用了r.close()把协程关掉了,所以再次发送r.send(4)的时候会抱异常
递归函数
先看一个例子:
import sysmaxdepth = int(sys.getrecursionlimit())def recursion(n): if n > maxdepth-2: print "you exceed the max recursionlimit." sys.exit(1) else: if n < 1: return 1 else: return n*recursion(n-1)print recursion(10)
结果:
3628800
可以算出正确的结果。一般递归深度受到sys.getrecursionlimit()函数的影响,默认值是1000,尽管可以增大这个值,但是还是受到系统使用栈的大小的限制。
如果我我们给n复制1000的话,就超过了限制,得到这样的结果。
you exceed the max recursionlimit.
- python的一些重点知识
- 关于web开发的一些重点知识
- 关于web开发的一些重点知识总结
- python classs的一些知识
- python 的一些小知识
- Python基础中的一些重点
- 面试的一些重点
- Servlet的重点知识总结
- Python的一些小技巧小知识
- Python的一些小技巧小知识
- Python一些容易忽略的知识
- Python的一些小技巧小知识
- Python:字典数据类型的一些知识
- python模块的一些小知识
- python一些关于字符串的知识
- Python一些知识
- 一些Python知识
- Python一些小知识
- JSON
- jquery学习笔记 切换皮肤
- linux下vim命令详解
- 解析解和数值解
- myeclipse 从svn里面到处web项目 找不到tomcat容器
- python的一些重点知识
- SAP clear buffer of application server
- linux
- viewDidUnload 和 dealloc 的区别
- 寂寞不归路-软件高手是这样练成的
- hdu 3953 I'll play a trick on you
- vi 命令 用法
- 101个鲜为人知的超实用网站
- vc环境下gtk编程编译错误(123.obj : error LNK2001: unresolved external symbol _gtk_main)