print([x**2 for x in range(10)])
print("\n".join([" ".join(["{}*{}={}".format(x, y, x*y) for x in range(1,y+1)]) for y in range(1,10)]))
gender =(x for x in range(10) if x % 2 == 0)
print(next(gender))
print(next(gender))
print(next(gender))
print(next(gender))
print(next(gender))
def func(n):
i = 0
while i < n:
yield i ** 2
i+=1;
return '执行结束'
g = func(5)
print('生成器结果:',next(g))
print('生成器结果:',next(g))
print('生成器结果:',next(g))
print('生成器结果:',next(g))
while True:
try:
result = next(g)
print('生成器结果:',result)
except StopIteration as e:
print('生成器返回:', e.value)
break
def echo():
while True:
print("输出值前")
value = yield
print(f"收到值: {value}")
gen = echo()
next(gen)
gen.send(42)
gen.send(10)
def leaf():
yield '叶'
yield '子'
def branch():
yield '枝'
yield from leaf()
yield '条'
for item in branch():
print(item)
def consumer():
while True:
d = yield 'data from consumer'
print('[Consumer] get data from producer: %d' % d)
def producer(consumer_obj):
next(consumer_obj)
for count in range(5):
print('[Producer] producing %d' % count)
consumer_obj.send(count)
consumer_obj.close()
c = consumer()
producer(c)