python第十二天
阿新 • • 發佈:2017-05-15
() ati urn col nbsp div 斐波那契數 傳值 log
第二模塊學習: 生成器,叠代器,內置函數
生成器特點:只有在調用時才會生成相應的數據,運行的速度快!
示例:
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 whileTrue: 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第十二天