类型错误:"int"对象不可下标。我该怎么办?



所以,我做了一个程序来计算矩阵加法、矩阵约简和矩阵乘法的总和,结果我得到了一个错误

matrix = []
matrix2 = []
matrix3 = []
kali = []
kali2 = []
wrong = 0

print("matrix A : ")
for i in range(2):
A = [] 
for j in range(2):
A.append(int(input())) 
matrix.append(A)
print("Matrix A : ")
for i in range(2):
for j in range(2):
print(matrix[i][j], end = " ") 
print() 
print()
print()

print("matrix B : ")
for i in range(2):
B = [] 
for j in range(2):
B.append(int(input())) 
matrix2.append(B)
print("Matrix B : ")
for i in range(2):
for j in range(2):
print(matrix2[i][j], end = " ") 
print() 
print()
print()

print("matrix C : ")
for i in range(2):
C = [] 
for j in range(2):
C.append(int(input())) 
matrix3.append(C)
print("Matrix C : ")
for i in range(2):
for j in range(2):
print(matrix3[i][j], end = " ") 
print() 
print()
print()
while wrong < 1:
choose = (str(input("(+/-/*)? : ")))
if choose == "+":
print("result : ")
for i in range(2):
for j in range(2):
print(A[i][j]+B[i][j]+C[i][j], end = " ")
print()
wrong = 0
elif choose == "-":
print("result : ")
for i in range(2):
for j in range(2):
print(A[i][j]-B[i][j]-C[i][j], end = " ")
print()
wrong = 0
elif choose == "*":
print('temp')
else:
print("error")
wrong = 1

我在输入数组后键入 +,我得到了这个

回溯(最近一次调用最后(:
文件 "main.py",第 65 行,在
print(A[i][j]+B[i][j]+C[i][j],end = " "(
类型错误: 'int' 对象不可下标

我试图创建一个新变量并将其更改为 str,但它不起作用

totalsum = A[i][j]+B[i][j]+C[i][j]
totalsum = str(totalsum)
print (totalsum)

我明白了

回溯(最近一次调用(:
文件 "main.py",第 65 行,
总计 = A[i][j]+B[i][j]+C[i][j]
TypeError: 'int' 对象不可下标

还是一样

请帮助我

如果你看看你在哪里定义 A 以及如何向它添加你的输入,你会注意到你只是一个接一个地附加整数。因此,A不是看起来像[[a,b],[c,d]],这是我想象你想要的,它看起来像[a,b,c,d]。你可以做一些类似 Aprime.append(int(input((( 的事情,然后在 J 的 init 循环之后将 Aprime 附加到 A。

totalsum = A[i][j]+B[i][j]+C[i][j]   

???

不应该是:

matrix[i][j]+matrix2[i][j]+matrix3[i][j] 

我试图创建一个新变量并将其更改为str,但它不起作用

totalsum = A[i][j]+B[i][j]+C[i][j]
totalsum = str(totalsum)
print (totalsum)

我建议不要尝试猜测解决方案,而不首先了解导致问题的原因。简单但通常有效的方法是在野线之前print,也就是说,您可以执行以下操作:

print(A)
print(B)
print(C)

totalsum = A[i][j]+B[i][j]+C[i][j]之前,应该表明实际上ABC是矩阵的最后一行,这只是数字的平坦list,通过A[i][j],您试图获得i元素的第j个元素,实际上j个没有意义的数字的第 -个元素。

最新更新