15

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

4 回答 4

39

当你写

for number in students:

你的意图是,“运行这段代码students时间,students我刚刚输入的值在哪里。” 但是在 Python 中,传递给语句的东西需要for某种可迭代的对象。在这种情况下,你想要的只是一个range声明。这将生成一个数字列表,遍历这些数字将使您的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如果您需要更改循环中的某种列表(这可能是您稍后需要做的),使用该版本被认为更惯用并且更方便。

于 2013-02-18T16:55:59.557 回答
3

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

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

我在那里添加 + 1 的原因是因为 range 的第二个参数是独占的。

于 2013-02-18T16:54:25.573 回答
0

试试这个...它会工作...

i=0
x = "abcd"


print("Using for loop printing string characters")
for i in range(len(x)):
    print(x[i])
于 2020-05-01T07:01:54.667 回答
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: "))
于 2021-01-22T20:45:37.747 回答