def tri(max): L=[1,] for i in range(1,max+1):##三角共有max行,故需要循环max次,生成list
##第i行列表包含的元素个数为i yield L temp=[] for j in range(1,i):###第i行的列表是第i-1行的元素两两相加得到的, temp=temp+[L[j-1]+L[j]] L=[1,]+temp+[1,]
for i in tri(8): print(i)
我写的这段代码能够得到正确的结果,但是我认为在第二个for循环中temp=temp+[L[j-1]+L[j]] 会有下标越界的情况出现才对。例如,当第一层循环的i=2时,第二层循环j=1,2,当j=1时,temp=temp+[L[0]+L[1]],然而此时的L仅有第一排,即L=[1],所以下标越界应该报错才对
Sign in to make a reply
大家叫我滔滔就行
def tri(max): L=[1,] for i in range(1,max+1):##三角共有max行,故需要循环max次,生成list
for i in tri(8): print(i)
我写的这段代码能够得到正确的结果,但是我认为在第二个for循环中temp=temp+[L[j-1]+L[j]] 会有下标越界的情况出现才对。例如,当第一层循环的i=2时,第二层循环j=1,2,当j=1时,temp=temp+[L[0]+L[1]],然而此时的L仅有第一排,即L=[1],所以下标越界应该报错才对