类型错误:';int';对象没有属性'__获取项目';用python
我一直在尝试为控制台制作一个简单的面向对象游戏。最初,这个游戏将创建一个由0到9之间的随机数创建的列表。该列表的长度将是5,但有时可能是4,因为若列表包含0个以上的列表,它将自动删除。之后,在计算插入0的位置后,将0放入索引。程序将获得变量的第一个索引,该索引将被计算为0的位置,但有时第一个索引可能超过我的列表长度。为此,我创建了一个名为IndexOfZero的变量,并将其设置为等于计算0的位置的变量的第一个索引。 在我这样做之后,我得到了一个名为TypeError的错误:“int”对象没有属性“getitem”,我如何修复这个错误类型错误:';int';对象没有属性'__获取项目';用python,python,oop,runtime-error,typeerror,Python,Oop,Runtime Error,Typeerror,我一直在尝试为控制台制作一个简单的面向对象游戏。最初,这个游戏将创建一个由0到9之间的随机数创建的列表。该列表的长度将是5,但有时可能是4,因为若列表包含0个以上的列表,它将自动删除。之后,在计算插入0的位置后,将0放入索引。程序将获得变量的第一个索引,该索引将被计算为0的位置,但有时第一个索引可能超过我的列表长度。为此,我创建了一个名为IndexOfZero的变量,并将其设置为等于计算0的位置的变量的第一个索引。 在我这样做之后,我得到了一个名为TypeError的错误:“int”对象没有属性
def PutZero(self, x='t'):
elements = 0
element = []
putZero = 0
for x in range(len(self.list)):
elements += self.list[x]
element.append(elements)
sum = element[-1]
print(sum,'This is the sum.')
if self.list.count(0) == 0:
putZero = (math.sqrt(math.pow(random.randrange(50,100), 5) / sum + self.list[2]) )
putZero = int(math.floor(putZero))
IndexOfZero = putZero[0] """the line that I'm getting error"""
if IndexOfZero == 0:
IndexOfZero = random.randrange(0,3)
print(IndexOfZero,'Randomly generated value')
if IndexOfZero > 5 or IndexOfZero > 4:"""Do I still get the same error for this line and for the below ?"""
IndexOfZero = random.randrange(0,3)
if x:
return '{}'.format(self.list)
错误是:
Traceback (most recent call last):
File
"/home/guney/Find_Zer0/Code.py", line 52, in PutZero
IndexOfZero = putZero[0]
TypeError: 'int' object has no attribute '__getitem__'
问题是你不能索引一个数字。我认为你误解了你使用的教程,或者教程不可靠 如果你想得到一个数字的第一位,你可以使用数学,或者先把它转换成字符串 既然您正在使用索引,那么您似乎正在尝试第二种方法 下面是一个如何做到这一点的示例:
num = 1234
str_num = str(num)
first_char = str_num[0] # Get the first character of the string
first_digit = int(first_char) # Parse the string as an integer
print(first_digit) # Prints the number 1
这种方法比直接使用数学要慢,但在大多数情况下,这应该不是问题。
putZero
是一个数字。您希望putZero[0]
做什么<例如,code>0[0]没有任何意义。putZero
是一个int
,您不能在int
下标,例如1[0]
是一个错误-您试图实现什么-您的意思是IndexOfZero=putZero
?@AChampion我的意思是IndexOfZero等于putZero变量的第一个值。如果我尝试的方式不正确,我怎么能做到这一点?我的目标是这个程序在putZero变量中进行计算,然后将这个变量的第一个值设置为等于IndexOfZero变量。例如,putZero的结果是:781245,我想得到第一个元素,它是7,设置为IndexOfZero,检查它是大于4还是大于5,根据结果更改值。@Carcigenicate我在一些教程中看到过,他们在创建int变量,当他们说类似于print的内容时(integerValue[0])数字的第一个数字是打印,我想这样做。我在评论部分告诉你其他事情,你可以阅读。