Python 有人能解释一下为什么会出现索引超出范围的错误吗?

Python 有人能解释一下为什么会出现索引超出范围的错误吗?,python,Python,我试图理解为什么会出现这个错误,我尝试重新格式化代码并检查是否有任何错误,但我仍然无法得到正确的答案 n=int(input("Enter the number of rows: ")) m=[] for i in range(2*n-1): m.append([]) m[i].append(1) for j in range (1,i): m[i].append(m[i-1][j-1]+m[i-1][j]

我试图理解为什么会出现这个错误,我尝试重新格式化代码并检查是否有任何错误,但我仍然无法得到正确的答案

 n=int(input("Enter the number of rows: "))
    m=[]
    for i in range(2*n-1):
        m.append([])
        m[i].append(1)
        for j in range (1,i):
            m[i].append(m[i-1][j-1]+m[i-1][j])
        if n != 0:
            m[i].append(1)
    pTr = []
    for i in range(n):
        row = []
        for j in range(i,n+1):
            row.enter code hereappend(m[j][i])
        pTr.append(row)
    print("The pascal matrix is as shown below")
    for i in range(n):
        for j in range(n):
            print("{0:6}".format(pTr[i][j]), end=" ")
        print()

您正在尝试打印帕斯卡三角形的
n
行。 但是,输出循环坚持在三角形的每一行中查找
n
元素。它一碰到较短的行,就会崩溃

一个简单的
打印
跟踪显示错误:

print("The pascal matrix is as shown below", pTr)
n=4的输出(分为单独的行):


如果坚持打印只有3个元素的列表中的4个元素,则代码会崩溃。

欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确指定问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。由于缩进错误,您发布的代码无法运行,它将挂起等待您尚未提供的输入。我们还需要完整的错误。
[
 [1, 1, 1, 1, 1],
 [1, 2, 3, 4],
 [1, 3, 6],
 [1, 4]
]