错误消息"' int'对象没有属性' __ getitem __'"

时间:2015-10-27 22:28:45

标签: python attributes int

import random

numbers = []
for i in range(301):
    numbers.append(random.randint(1,600))

g=0
u=0

for i in numbers:
    if i[-1]=="1" or i[-1]=="3" or i[-1]=="5" or i[-1]=="7" or i[-1]=="9":
        u +=1
    else:
        g +=1
print g
print u

总是会给我一个这样的错误:

TypeError: 'int' object has no attribute '__getitem__'

我只是一个初学者,所以我真的不明白,这里的问题在哪里......所以,谢谢你的帮助......

1 个答案:

答案 0 :(得分:1)

您允许i成为numbers的元素。 numbers的元素是int s。你不能索引整数:5[3]←没有意义。

Python中的索引是通过方法__getitem__()完成的,因此Python尝试调用5.__getitem__(3)(不存在)。这就是错误消息的来源。

你可能想要的是对整数进行字符串化:

str(i)[-1]

获取数字的最后一位数字(作为字符)。

但是因为你与1,3,5,7,9相比,我猜你想测试一个奇数。这更简单:

i % 2 == 1