TypeError:“ int”对象不可下标。我该怎么办?

时间:2020-05-21 08:14:38

标签: python

所以,我制作了一个程序来计算Matrix加法,Matrix约简和Matrix乘法的总数,但出现错误

    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 =“”)
TypeError:“ 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”对象不可下标

还是一样

请帮助我

3 个答案:

答案 0 :(得分:0)

如果查看定义A的位置以及如何向其中添加输入,您会注意到,您只是在逐个附加整数。因此,我想像的不是A看起来像[[a,b],[c,d]],而是[a,b,c,d]。您可以改为执行类似Aprime.append(int(input())的操作,然后在J的初始化循环之后将Aprime附加到A。

答案 1 :(得分:0)

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

???

是不是应该这样:

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

答案 2 :(得分:0)

我尝试制作一个新变量并将其更改为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],您试图获得第j个元素的第i个元素,实际上是没有意义的第j个数字元素。