为什么我的代码给出了' int'对象是不可订阅的错误?

时间:2017-04-20 19:36:23

标签: python

t= int(input())
ar=[]
chk=0
x=0
y=0
while(t>0)
    i=int(input())
    for l in range(i):
        ar= int(input())
    for l in range(i-1):
        for m in range(l+1,i):
            x=ar[l]
            y=ar[m]
            k=x*y
            if k in ar:
                continue
            else:
                chk=chk+1
    print(True)
    if chk>0:
        print(False)
    t-=1

错误:

x=ar[l]

TypeError: 'int' object is not subscriptable

在这个程序中,如果数组中的所有对都遵循关系x = a * b,其中x是数组中的任何元素,而abd b是该对的元素,则我尝试打印true。

2 个答案:

答案 0 :(得分:1)

您打算将输入附加到ar。使用

ar.append(int(input())

而不是

ar = int(input())

ar类型从list更改为int,并且无法再使用索引访问它。

答案 1 :(得分:0)

您使用ar错误。首先,您像列表一样使用ar,然后像int一样使用。

ar=[]               # You are using ar like a list
ar= int(input())    # Now, you are using ar like an int

您必须附加值:

ar.append(int(input()))

现在你正在制作一份好名单!