【问题标题】:TypeError: 'type' object is not iterable in a for loopTypeError:“类型”对象在 for 循环中不可迭代
【发布时间】:2020-01-02 22:30:58
【问题描述】:

我查看了其他线程,但无法找出问题所在。所有的答案都太复杂了,我无法很好地处理。

我不断收到以下错误:

TypeError: 'type' object is not iterable

我不知道为什么。

这是一个sn-p:

calcWhat = 4
elif o == "^":
    pwr = int(input("To the power of what? "))
    pwr = pwr - 1 #So that if it's one then it doesnt multiply at all
    ans = calcWhat * calcWhat
    for pwr in range:
        ans = ans + (calcWhat * calcWhat)

我认为这是正确的代码,但如果不修复此错误,我什至看不到!

怎么了?

【问题讨论】:

  • 人们可能会不喜欢这篇文章,因为它与其他帖子重复。但我只需要不太复杂的答案。
  • 你的循环应该看起来像这样 for pp in range(pwr): 范围创建一个数字序列。如果 pwr 为 2,则范围为 (0,2)
  • range 是错误中的“类型”。您可能正在寻找生成器range()
  • 他们将对此投反对票,因为任何有关 Python 循环的教程都显示了使用 range() 的正确方法。
  • 为什么需要循环?只是ans = calcWhat * calcWhat * pwr。顺便说一句,您每次添加时都没有计算幂。

标签: python python-3.x exception typeerror


【解决方案1】:

看起来您正在尝试迭代 range 这是一个 type (如错误所述)。您可能想调用函数range() 并为其指定范围限制。在您的情况下,它将是:

for _ in range(pwr):

【讨论】:

  • 我会使用这个,但我决定接受@Barmar 的建议并执行ans = calcWhat * calcWhat * pwr。但由于这是一个很好的答案,我将标记为已接受:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
相关资源
最近更新 更多