def triangles(max):
list=[1]
for i in range(max):
yield list
list.append(0)
list=[list[k]+list[k-1] for k in range(i+2)] #列表生成式
pass
pass
f=triangles(10)
while True:
try:
x = next(f)
print('f:', x)
except StopIteration as e:
print('Generator return value:', e.value)
break
生成结果:
f: [1]
f: [1, 1]
f: [1, 2, 1]
f: [1, 3, 3, 1]
f: [1, 4, 6, 4, 1]
f: [1, 5, 10, 10, 5, 1]
f: [1, 6, 15, 20, 15, 6, 1]
f: [1, 7, 21, 35, 35, 21, 7, 1]
f: [1, 8, 28, 56, 70, 56, 28, 8, 1]
f: [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
Generator return value: None