Discuss / Python / 修改数次仍报了超出列表的错误

修改数次仍报了超出列表的错误

Topic source

rain

#1 Created at ... [Delete] [Delete and Lock User]
def triangles():    line = [1]    n = 1    while True:        line1 = [1]        if n >1:            for i in range(1,n):                line1.append(line[i-1]+line[i])            line1.append(line[-1])        yield line1        line = line1        n += 1        if n == 11:            breakfor line in list(triangles()):    print(line)    if line == [            [1],            [1, 1],            [1, 2, 1],            [1, 3, 3, 1],            [1, 4, 6, 4, 1],            [1, 5, 10, 10, 5, 1],            [1, 6, 15, 20, 15, 6, 1],            [1, 7, 21, 35, 35, 21, 7, 1],            [1, 8, 28, 56, 70, 56, 28, 8, 1],            [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]    ]:        print('测试通过!')    else:        print('测试失败!')





Traceback (most recent call last):
  File "C:\Python-learn\text3.py", line 16, in <module>
    for line in list(triangles()):
                ^^^^^^^^^^^^^^^^^
  File "C:\Python-learn\text3.py", line 8, in triangles
    line1.append(line[i-1]+line[i])
                           ~~~~^^^
IndexError: list index out of range

  • 1

Reply