武道之路-炼体期六重天(年已过,恢复更新)
2018-06-18 01:31:40来源:未知 阅读 ()
生成器:调用的时候才生成的数据(惰性计算,协程:保留上次进入的状态,每次程序进入,相当于调用上一次的状态,异步),单线程下的并发效果(不同角色间切换)。
(3.x)range(),列表生成式 [i*i for i in range(20)],
文件读取:
for line in f: (这里f是文件句柄)
print(line)
记住重要的方法:__next__(计算下一个状态值),send(value)(把值传给生成器的yeild)
例如(斐波那契数列):
def seq(num):
#计算几位斐波那契数列
count,x,y=0,0,1
while count<num:
yield y #想把什么放入生成器
x,y=y,x+y
count=count+1
return 'end'
g=seq(10)
g.__next__()->1
g.__next__()->1
g.__next__()->2
...
超过num数字会抛出异常
捕获异常:
try:
#程序段
except StopIteration(异常类型,这里表示没有更多值了):
print('error')
break
单线程下的并发效果(异步):
import time
def employee(name):
print('%s 已经准备工作'%name)
while True:
work=yield
print('%s 员工已经完成老板下发的%s份工作 '%(name,work))
def boss(name):
wang=employee('小王')
zhang=employee('小张')
wang.__next__() #相当于把函数变成生成器 停在yield(执行到这里)
zhang.__next__()
print('%s 准备去接单了'%name)
for i in range(10):
print('已经接到 %d 份单子'%i)
wang.send(i)#把值传给yield
zhang.send(i)
time.sleep(1)#隔一秒
boss('大哥')#调用,boss 接单,员工完成工作同时进行!(不熟悉的自己设断点调试过程)
迭代器(Iterator):可被__next__调用并不断返回下一个值的对象,直到抛出异常。生成器(generator),range(), f(文件句柄),[i*5 for i in range(10)],for循环(底层)
可迭代对象(Iterable):可直接作于for循环的对象,list tuple,dict,set,str(可通过Iter()转成迭代器), 带yield的function,generator
from collections inport Iterable(Iterator) 先引入
isinstance(对象,Iterable(Iterator)) 判断是否是可迭代对象(迭代器)
一些内置函数:
abs() 求绝对值
bool()判断真假
all()检测可迭代对象里的元素的值有假即是假
any()检测可迭代对象里的元素的值有真即是真
bin()转二进制-》b'.....'
bytearray('值',encoding='编码'),二进制可变数组,bytes不可变
callable() 是否可调用,函数,类---》()
chr 返回ASCII值对应的字符,ord 与之相反
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:函数闭包
- Python之路【第九篇】:Python面向对象 2019-07-24
- python的学习之路(三) 2019-05-10
- python的学习之路(二) 2019-04-28
- python学习之路(1) 2019-04-28
- 学习之路-->大小文件读取并分页展示 2019-04-25
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