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