Это то, что я считаю, это соответствующая часть моего кода: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
Вы не показали, что 'inventory' есть, но это, кажется, список Интс, а не список того, что вы думаете. Также обратите внимание, что всякий раз, когда вы обнаруживаете, что выполняете итерацию по 'range (len (something))' в Python, вы делаете это неправильно; итерации по самой вещи. –
Инвентаризация представляет собой 2D и 3D-список, а для большинства из них 2D - 4 строки и 1 строка, а трехмерная часть заменяет один из int с 2 int в более скобках (например, [[0,0,10,4 , "example"], [0,0, [5,0], 5, "example2"]]) Для диапазона (len (что-то)) то, что делает, это оператор for для каждого элемента в списке. Какую часть этого я должен изменить? – Weirdpersonx
'inventory', вероятно, имеет некоторые элементы, которые содержат вложенные списки arent, поэтому получение' inventory [i] 'будет возвращать int, а не dict или список, как вы, кажется, ожидаете –