【问题标题】:TypeError: 'int' object is not subscriptable (from pause function)TypeError:“int”对象不可下标(来自暂停函数)
【发布时间】:2015-12-02 06:50:43
【问题描述】:

这是我认为是我的代码的相关部分:

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

这会返回 if 语句的错误。

每当我调用此函数时都会发生这种情况:

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 是什么,但它似乎是一个整数列表,而不是您认为的任何内容的列表。另请注意,任何时候你发现自己在 Python 中迭代 range(len(something)),你都做错了;迭代事物本身。
  • Inventory 是一个 2D 和 3D 列表,其中大多数的 2D 有 4 个整数和 1 个字符串,3D 部分用更多括号内的 2 个整数替换其中一个整数(例如 [[ 0,0,10,4,"example"],[0,0,[5,0],5,"example2"]]) 对于 range(len(something)) 所做的是 for 语句列表中的每个项目。我应该改变哪一部分?
  • inventory 可能有一些不是嵌套列表的项目,因此获取 inventory[i] 将返回一个 int 而不是 dict 或列表,如您所料
  • 我刚刚仔细检查了一下,库存中没有任何单独的物品(例如,不在另一个列表中的东西,这是我从你所说的情况中理解的)。

标签: python pyscripter


【解决方案1】:

好的...我正在和一个朋友一起工作,他发现了错误。这是我如何将物品添加到库存中的方式。

感谢阅读本文的人,尤其是那些试图找出错误的人。

~Wpx

【讨论】:

    猜你喜欢
    • 2017-08-08
    • 2017-07-15
    • 2012-02-21
    • 2018-08-07
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多