首页 > 代码库 > 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第十二天