首页 > 解决方案 > python IndexError:列表索引超出范围,矩阵计算

问题描述

我正在尝试解决数字矩阵处理器(hyperskill.org)的第一步。我必须编写程序(不使用 numpy),它需要 2 个矩阵,然后如果行数和列数相等,我必须输出这 2 个矩阵的总和。我知道现在没有使用列数(仅在 if 条件下),但这并不重要。在我调用求和函数后,问题是“IndexError:列表索引超出范围”。有人可以告诉我我做错了什么吗?谢谢帮助!

main = []
main2 = []
final = []
mat = []


def reading():
    print("rows:")
    reading.rows = int(input())
    print("columns:")
    reading.columns = int(input())

for i in range(reading.rows):
    mat = input().split()
    mat = list(map(int, mat))
    main.append(mat)
return main


def reading2():
    print("rows:")
    reading2.rows = int(input())
    print("columns:")
    reading2.columns = int(input())

for i in range(reading2.rows):
    mat = input().split()
    mat = list(map(int, mat))
    main2.append(mat)
return main2


def summing():
    if reading.rows == reading2.rows and reading.columns == reading2.columns:
        for i in range(reading.rows):
            for j in range(reading.columns):
                final[i][j] = main[i][j] + main2[i][j]
                print(final[j][i], end=" ")
            print()
    else:
        print('ERROR')


reading()
reading2()
summing()

标签: pythonrangeout

解决方案


推荐阅读