类型错误:';int';对象不是可读取的Python读取文件

类型错误:';int';对象不是可读取的Python读取文件,python,Python,这是一个幻方程序,可以找出任何大小的矩阵是否是幻方。当我运行代码时,我得到错误类型错误:“int”对象是不可下标的。我决定将line=int(I)改为line=I,但这又给了我一个错误。不能使用numpy 编辑:现在我得到这个错误类型错误:“int”对象是不可编辑的 文本文件: 1 1 6 8 以下是代码: def main(): filNam = "matrix8.txt" matrix = (readMatrix(filNam)) rowNum = 0 co

这是一个幻方程序,可以找出任何大小的矩阵是否是幻方。当我运行代码时,我得到错误类型错误:“int”对象是不可下标的。我决定将line=int(I)改为line=I,但这又给了我一个错误。不能使用numpy

编辑:现在我得到这个错误类型错误:“int”对象是不可编辑的

文本文件:

1 1
6 8
以下是代码:

def main():
    filNam = "matrix8.txt"
    matrix = (readMatrix(filNam))
    rowNum = 0
    colNum = 0
    print(rowSum(matrix, rowNum))

def readMatrix(filNam):
    matrixList = []
    numFile = open(filNam, "r")
    lines = numFile.readlines()
    for line in lines:
        line = line.split()
        row = []
        for i in line:
            row.append(int(i))
        matrixList.append(row)
    return matrixList

def eachNumPresent(matrix):
    if len(matrix) % 2 != 0:
        return False
    else:
        return True

def rowSum(matrix, rowNum):
    for row in matrix[rowNum]:
        row = sum(int(row))
        rowNum = rowNum + 1
    return i


def colSum(matrix):
    length = len(matrix)
    col_rows = 0
    for i in range(length):
        col_rows = col_rows + matrix[i][0]
        return col_rows

main()

问题是矩阵被“展平”为一长行。为了修复它,您应该逐行读取并构造矩阵

更改:

def readMatrix(filNam):
    matrixList = []
    numFile = open(filNam, "r")
    lines = numFile.readlines()
    for line in lines:
        line = line.split()
        for i in line:
            line = int(i)
            matrixList.append(line)
    return matrixList
致:

更改代码并在问题中提供的输入上运行,它将打印
2
,这是矩阵中第一行的总和

def readMatrix(filNam):
    matrixList = []
    numFile = open(filNam, "r")
    lines = numFile.readlines()
    for line in lines:
        line = line.split()
        row = []  # 1st change
        for i in line:
            row.append(int(i)) # 2nd change
        matrixList.append(row) #3rd change
    return matrixList