'''
---列表生成器:
a = []
for i in range(10):
a.append(i*2)
print(a)
--------生成器----
a =(i*2 for i in range(10))
for i in a:
print(i)
生成器 只有在调用时才会生成相应的数据
生成器只记录当前的位置,只有一个__next__()方法
'''
'''
#著名的斐波那契数列:除第一个数和第二个数外,任意一个数都可由前两个数相加得到
#1,1,2,3,5,8,13,21,34,56........
def fib(max): #10
n, a, b = 0, 0, 1
while n < max: #n<10
#print(b)
yield b #yield保存了函数的中段状态
a, b = b, a + b
#a = b a =1, b=2, a=b , a=2,
# b = a +b b = 2+2 = 4
n = n + 1
return '---done---'
#f= fib(10)
g = fib(6)
#-----抓取异常
while True:
try:
x = next(g)
print('g:', x)
except StopIteration as e:
print('Generator return value:', e.value)
break
#print("---------dddd")
# print(f.__next__())
# print("======")
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
# print(f.__next__())
print("====start loop======")
#for i in f:
# print(i)
'''
"""
#----------通过yield实现单线程并发功能--------------
import time
def consumer(name):
print("%s 准备吃包子啦!" %name)
while True:
baozi = yield
print("包子[%s]来了,被[%s]吃了!" %(baozi,name))
c = consumer("Zhuxianjun")
c.__next__()
# b1= "韭菜馅"
# c.send(b1)
# c.__next__()
def producer(name):
c = consumer('zhuxianjun 1号')
c2 = consumer('zhuxianjun 2号')
c.__next__()
c2.__next__()
print("开始准备做包子啦!")
for i in range(8):
time.sleep(1)
print("做了1个包子,分两半!")
c.send(i)
c2.send(i)
producer("sun")
print("zhuxianjun 还没吃饱")
"""
#可直接作用于for循环的对象称为可迭代对象:Iterable
# 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
#集合数据类型如:list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象
#--------------内置函数------------------
print(all([1,-5,1]))
print(any([1,0,1]))
print(ascii([1,2,"啦啦啦"]))
#print(bool(0,1,2))
a = bytes("abcde",encoding="utf-8")
b = bytearray("abcde",encoding="utf-8")
print(a.capitalize(),a)
print(b[0])
print(callable([0]))
def sayhi(n):
print(n)
sayhi(3)
calc = lambda n:print(n)
calc(5)
res = map(lambda n:n**n,range(10))
for i in res:
print(i)
a = frozenset([1,4,333,666,8,0,1111])
print(a)
print(globals())
python入门之生成器与迭代器
最新推荐文章于 2024-09-14 16:07:54 发布