首页 > 代码库 > python第十二天
python第十二天
第二模块学习: 生成器,迭代器,内置函数
生成器特点:只有在调用时才会生成相应的数据,运行的速度快!
示例:
1 def fil(max):#斐波那契数 2 n,a,b=0,0,1 #定义初始数据 3 4 while n<max: 5 yield b 6 a,b=b,a+b #进进第二次的赋值 7 n+=1 8 9 10 return ‘---deno----‘ 11 12 a=fil(10) 13 while True: 14 try: 15 print(a.__next__())#打印返回值 16 except StopIteration as e:#异常返回 17 print(‘XXXXXX‘,e.value) 18 break
yield 生成器断点缓存 可赋于变量
.send()可以为yield 传值、数据
示例:
1 #利用生成器 可形成多并发 2 # 3 name_1=‘销售点A‘ 4 name_2=‘销售点B‘ 5 name_sc=‘大丰厂‘ 6 yf=‘衣服‘ 7 8 def a(name): 9 print("产品%s………准备完毕………"%name) 10 while True: 11 doc=yield#生成器断点缓存 12 print(‘%s在销售\033[32;1m%s\033[0m‘%(name,doc))#传入打印出来 13 14 # c=a(‘销售点A‘) 15 # c.__next__()#首次运行加载 doc 16 # yf=‘衣服‘ 17 # c.send(yf) 18 # c.__next__() 19 # c.__next__() 20 # c.__next__() 21 def b(name): 22 print("产品%s………准备完毕………"%name) 23 while True: 24 doc=yield#生成器断点缓存 25 print(‘%s在销售\033[32;1m%s\033[0m‘%(name,doc))#传入打印出来 26 27 def sc(name):#生产产家 28 29 c=a(name_1) 30 d=b(name_2) 31 c.__next__()#首次加载 32 d.__next__() 33 print(‘%s开始生产了…………‘%name) 34 for x in range(10): 35 print(‘生产了%s件%s‘%((x+1)*2,yf)) 36 c.send(yf) 37 d.send(yf) 38 39 sc(name_sc)
迭代器:Iterator
可以返回下一个值的迭代对象,就可以称为迭代器
迭代对象:Iterable
可以被for循环的对象,如列表,字典,字符串等,可以称为迭代对象!
iter() 可以将迭代对象转化有迭代器
生成器属于迭代器中的一种
内置函数:
1 abc(i)#返回绝对值 2 all()#当可迭代对象值都为真时才返回真 3 any()#当可迭代对象值有一个为真时就返回真 4 ascii()#可以将列表转为ascii表对应的字符串输出 5 bin()#十进制转二进制………………
python第十二天
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。