我如何修复TypeError:' int'对象不可迭代?

时间:2013-02-18 16:51:58

标签: python

我正在尝试编写一个程序,允许您输入班级中的学生人数,然后为每个学生输入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: "))

4 个答案:

答案 0 :(得分:22)

当你写

for number in students:

你的意图是,“运行这段代码students次,其中students是我刚输入的值。”但在Python中,你传递给a for statement的东西需要是某种可迭代的对象。在这种情况下,您想要的只是range statement。这将生成一个数字列表,迭代这些数字将允许您的for循环执行正确的次数:

for number in range(students):
    # do stuff

在幕后,range只会生成一系列连续数字:

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

在你的情况下,数字是多少并不重要;以下两个for语句将执行相同的操作:

for number in range(5):

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

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

答案 1 :(得分:2)

无法迭代数字。你可能正在寻找的是range函数,它将创建一个数字序列,直到你想要的数字:

for number in range(1, students + 1):

我添加+ 1的原因是因为范围的第二个参数是独占的。

答案 2 :(得分:0)

尝试这个...它将起作用...

i=0
x = "abcd"


print("Using for loop printing string characters")
for i in range(len(x)):
    print(x[i])

答案 3 :(得分:0)

试试这个:

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

  for number in range(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: "))