python,这个简单的代码哪里出错了
问题描述:
目的是生成一个杨辉三角,报错显示索引越界,但感觉并没有
def triangles():
a=[1]
for i in range(2,11):
b=a[:]
a=[b[j]+b[j-1] if j<i and j>1 else 1 for j in range(1,i+1)]
yield a
print(a)
for b in triangles():
pass
答
a=[b[j]+b[j-1] if j1 else 1 for j in range(1,i+1)]
改成
a=[b[j-1]+b[j-2] if j1 else 1 for j in range(1,i+1)]
答
第一轮循环之后,a 还是【1】,所以当 i=3,j=2时,b【j】会报错。
答
i=2的时候,b=[1],j大于0,b[j]都会超索引