def triangles():
L = [1]
while True:
yield L
L.append(0)
L = [L[i-1] + L[i] for i in range(len(L))]
n = 0
for m in triangles():
print(m)
n = n + 1
if n == 10:
break
解释下
L = [1] # 定义一个只有一个值得list
yield L # 遇到yield就返回L ,此时返回第一行 [1]
L.append(0) # 给L添加个元素0,此时L = [1,0]
此时 L 里面有两个元素,len(L) = 2,range(len(L)) = range(2) = [0,1]
L = [L[i-1] + L[i] for i in range(len(L))]
= [L[-1] + L[0],L[0] + L[1]]
= [0 + 1, 1 + 0]
= [1, 1]
### 此时yield 返回第二行 [1,1]
vv阿甘vv
个人很迷惑,怎么也想不出来怎么写,看了下面同学们的回复,又在网上查询相关解释,现将个人理解写下来
输出杨辉三角如下:
代码实现如下
解释下
接下来看第三行
接下来第四行
下面太多了,以此类推好了
不造理解的对不对,想到这么写的人太厉害了