当前位置: 首页 > 面试题库 >

如何修复TypeError:“ int”对象不可迭代?

东门玺
2023-03-14
问题内容

我正在尝试编写一个程序,该程序允许您输入班级中的学生人数,然后为每个学生输入3个测试成绩以计算平均值。我是编程新手,但会不断收到错误消息,我不了解它的含义或解决方法。这是我到目前为止所拥有的:

students=int(input('Please enter the number of students in the class: '))

for number in students:
        first_grade=(input("Enter student's first grade: "))
        second_grade=(input("Enter student's second grade: "))
        third_grade=(input("Enter student's third grade: "))

问题答案:

当你写

for number in students:

您的意图是“运行这段代码students时间,students我刚才输入的值在哪里”。但是在Python,你传递给事情一个for声明需求是某种迭代对象的。在这种情况下,您想要的只是一个rangestatement。这将生成一个数字列表,并且对这些数字进行迭代将使您的for循环能够执行正确的次数:

for number in range(students):
    # do stuff

在幕后,rangeJust会生成一个序列号列表:

>>> range(5)
[0, 1, 2, 3, 4]

在您的情况下,数字到底是什么并不重要;以下两个for语句将执行相同的操作:

for number in range(5):

for number in [1, 3, 97, 4, -32768]:

但是,range如果您需要在循环中更改某种列表(这可能是以后需要做的事情),则使用该版本被认为更惯用且更方便。



 类似资料:
  • 环境: Python 3.7 Windows 10 64位 问题: 下面这段代码过去工作没有问题。我不得不移动我的Py魅力项目的文件夹,现在我得到了这个错误消息:“TypeError:'str'对象不可调用”。 守则: 错误输出: 我尝试的是: 我在一个空白的python文档中隔离了这段代码。我想确保这个问题没有连接到其他地方的代码。当我执行这段独立的代码时,我得到了同样的问题。 我在这里看到了关

  • 问题内容: 我正在尝试运行一个for循环。这是我遇到问题的代码部分: 因此,我的目的是遍历aldurstengd_ororka,对于字典中的每个“年龄”元组,我为元组中的每个“项目”运行另一个for循环。我得到的错误是 TypeError:“ int”对象不可迭代 问题答案: 如果是字典,则此表达式: 是一个错误。也许您的意思是: 编辑:您看到的错误是非常有趣的,我确实使用此代码段重现了它: 代码

  • 问题内容: 给定以下整数和计算 结果是: 如何将输出舍入为整数? 问题答案: 给定以下整数和计算 结果是: 如何将输出舍入为整数?

  • 问题内容: 我正在尝试从Wikipedia主页提取所有链接,但是此代码显示TypeError:“ WebElement”对象不是可迭代的错误。 问题答案: 问题是您正在使用哪个仅返回一个WebElement(不可迭代),即返回一个WebElement列表。 解决方案:替换为 参考:Selenium-Python文档

  • 问题内容: …引发错误: 我想通过将每个数字相加来找出总数,例如110。1 + 1 + 0 =2。我该怎么做? 谢谢 问题答案: 首先,不要再调用-您正在将字符串转换为整数,这不是您想要的(您希望将每个字符视为自己的数字)。更改: 至: 现在这是一个数字字符串,您可以逐个数字地对其进行循环。 接下来,将一些初始值分配给-就像您现在的代码一样,由于您从未初始化它,因此将获得一个。大概您想在循环之前。

  • 问题内容: 我正在尝试在python中使用pyodbc运行SQL命令。其中SQL命令包含多个SELECT命令和IF语句。 但我收到如下错误 问题答案: 包含多个SQL语句的SQL命令文本称为 匿名代码块 。匿名代码块可以返回多个结果,每个结果可以是 行数 包含零个或多个数据行的结果集,或 一个错误。 以下示例失败… …,因为第一个返回行计数,第二个返回其结果集。 解决方法是启动匿名代码块,该代码块