Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型错误:';int';对象没有属性'__获取项目';用python_Python_Oop_Runtime Error_Typeerror - Fatal编程技术网

类型错误:';int';对象没有属性'__获取项目';用python

类型错误:';int';对象没有属性'__获取项目';用python,python,oop,runtime-error,typeerror,Python,Oop,Runtime Error,Typeerror,我一直在尝试为控制台制作一个简单的面向对象游戏。最初,这个游戏将创建一个由0到9之间的随机数创建的列表。该列表的长度将是5,但有时可能是4,因为若列表包含0个以上的列表,它将自动删除。之后,在计算插入0的位置后,将0放入索引。程序将获得变量的第一个索引,该索引将被计算为0的位置,但有时第一个索引可能超过我的列表长度。为此,我创建了一个名为IndexOfZero的变量,并将其设置为等于计算0的位置的变量的第一个索引。 在我这样做之后,我得到了一个名为TypeError的错误:“int”对象没有属性

我一直在尝试为控制台制作一个简单的面向对象游戏。最初,这个游戏将创建一个由0到9之间的随机数创建的列表。该列表的长度将是5,但有时可能是4,因为若列表包含0个以上的列表,它将自动删除。之后,在计算插入0的位置后,将0放入索引。程序将获得变量的第一个索引,该索引将被计算为0的位置,但有时第一个索引可能超过我的列表长度。为此,我创建了一个名为IndexOfZero的变量,并将其设置为等于计算0的位置的变量的第一个索引。 在我这样做之后,我得到了一个名为TypeError的错误:“int”对象没有属性“getitem”,我如何修复这个错误

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])数字的第一个数字是打印,我想这样做。我在评论部分告诉你其他事情,你可以阅读。