类型错误:';int';对象不是可读取的Python读取文件
这是一个幻方程序,可以找出任何大小的矩阵是否是幻方。当我运行代码时,我得到错误类型错误:“int”对象是不可下标的。我决定将line=int(I)改为line=I,但这又给了我一个错误。不能使用numpy 编辑:现在我得到这个错误类型错误:“int”对象是不可编辑的 文本文件:类型错误:';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
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