【问题标题】:How to fix "int" is not subscriptable error?如何修复“int”不可下标错误?
【发布时间】:2013-04-28 12:57:51
【问题描述】:

我不断收到错误“int”对象不可替代。我知道我的问题在“def filaray()”之内,我也知道让“num”成为一个列表会更有效。然而这是一个任务,我很确定我们只能使用数组。有没有办法可以在不将“num”列为列表的情况下修复我的错误?

【问题讨论】:

  • 呃,列表是python中的普通“数组”类型。有一个array 类型,但不经常使用。您正在执行 num = a random int 这么多次,然后返回最后一个 int。您根本没有构建列表或数组。
  • 我建议复制并粘贴您遇到的确切错误,以便我们确切知道出了什么问题。
  • 'lists are the normal "array" type' ...[0] 确实是一个列表。你能给出一个准确的错误信息吗?错误所在的行/列在哪里?
  • num 被初始化为一个列表 ([0]) 但随后被random.randint 覆盖。请改用num.append(random.randint(0, 9))
  • 您应该阅读 the Python tutorial 以熟悉 Python 中列表和索引的基础知识。

标签: python arrays python-2.7 python-3.x


【解决方案1】:

num = random.randint(0,9) 行将num 设置为int,因此当fillaray 返回num(假设size > 0)时,它返回的是int,而不是列表,而这个@然后将 987654328@ 传递给totalOddstotalEvens,它们会尝试将其下标(即,执行num[i]),就好像它是一个列表一样,这是一个错误。据推测,您想要做的是将随机 ints 附加到列表 num 而不是覆盖它,例如,通过执行 num.append(random.randint(0,9))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-20
    • 2016-11-22
    • 2012-04-04
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多