2015-11-30 3 views
0

Это то, что я считаю, это соответствующая часть моего кода:TypeError: «INT» объект не subscriptable (с функцией паузы)

def choose_From_Inventory(itemType): 

    global inventory 
    string="" 
    """sets up how people choose items from inventory""" 
    for i in range(len(inventory)): 
     if inventory[i][0]==itemType: 
      string=string+"["+str(i)+"]: "+inventory[i][4]+"\n" 
    return string 

Это возвращает ошибку, если заявление.

Это происходит всякий раз, когда я называю эту функцию:

def pauseScreen(): 

    global hp, inventory, level, location, sq1, sq2, sq3, sq4 
    """prints the pause screen, lets them see hp, inventory, and location""" 
    print("\t\t HP:\n\t\t",hp,"\n\t\tInventory:\n"+str(choose_From_Inventory(0))+"\n"+str(choose_From_Inventory(1))+"\n"+str(choose_From_Inventory(2))+"\n"+str(choose_From_Inventory(3))+"\n\t\tLevel (Location):\n\t\t",level,location) 
    returnCode=input("Press enter to return or type in quit to quit\n") 
    if returnCode.lower()=='quit': 
     quit=input("Are you sure?\n") 
     if quit.lower()=='yes': 
      sys.exit() 
     else: 
      pauseScreen() 
    else: 
     levelCheck() 

Это не происходит каждый раз, но я не мог понять, почему он не работает. Я пробовал несколько других способов отформатировать оператор if, но я надеялся, что кто-то сможет мне помочь здесь.

Кроме того, я действительно проверял несколько других вопросов с подобными названиями, такие как этот (TypeError: 'int' object is not subscriptable) и этот (TypeError: 'int' object is not subscriptable in equation) Они не помогли мне найти решение.

Спасибо!

~ WPX

+1

Вы не показали, что 'inventory' есть, но это, кажется, список Интс, а не список того, что вы думаете. Также обратите внимание, что всякий раз, когда вы обнаруживаете, что выполняете итерацию по 'range (len (something))' в Python, вы делаете это неправильно; итерации по самой вещи. –

+0

Инвентаризация представляет собой 2D и 3D-список, а для большинства из них 2D - 4 строки и 1 строка, а трехмерная часть заменяет один из int с 2 int в более скобках (например, [[0,0,10,4 , "example"], [0,0, [5,0], 5, "example2"]]) Для диапазона (len (что-то)) то, что делает, это оператор for для каждого элемента в списке. Какую часть этого я должен изменить? – Weirdpersonx

+0

'inventory', вероятно, имеет некоторые элементы, которые содержат вложенные списки arent, поэтому получение' inventory [i] 'будет возвращать int, а не dict или список, как вы, кажется, ожидаете –

ответ

0

Хорошо ... Я работал с другом, и он нашел ошибку. Это было в том, как я добавлял элемент в инвентарь.

Спасибо тем, кто это прочитал, и тем более тем, кто пытался найти ошибку.

~ WPX

Смежные вопросы