1. 程式人生 > >python第十二天

python第十二天

() 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 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第十二天