def triangles(max):
L = [1]
n = 0
for n in range(max):
yield L
L.append(0)
L = [L[i-1] + L[i] for i in range(len(L))]
for t in triangles(5):
print(t)
以上为杨辉三角作业练习。
值得注意的是,不管yield什么,都会返回生成器,且没有bool值,因此filter函数无法对yield的结果进行过滤。毕竟filter函数是过滤掉bool==False的值,返回bool==True的值。因此用filter时,得用return,而不能用生成器。