我必须制作这个节目:
编写一个程序,允许教师输入他/她班级中的学生数量,然后允许他们输入名称并使用for循环标记班级中的每个学生。请注意,您不需要记录所有名称以供以后使用,这超出了课程的范围*所以只需询问每个名称,让它在一个名称变量中将名称保存在彼此之上。
即。)
内圈
name = input (“Please enter student name: “)
计算整个班级的平均分数 - 这将要求您使用总计。 在程序结束时输出类平均值,并询问是否要为另一个类输入标记。如果他们说是,则重新循环程序,如果不是,则停止该程序。
所以我开始编写程序,它看起来像这样
studentamount = int(input("Please enter how many students are in your class: "))
for count in range():
name = input ("Please enter student name: ")
mark = int(input("Please enter the student's mark"))
我遇到了以下问题:如何让for循环下的代码集为每个学生循环?我以为我可以输入studentamount变量作为范围,但我不能,因为python不允许你输入作为范围的变量。
如何输入for循环以获得输入的学生数量?例如如果输入20名学生金额的学生,我希望for循环循环20次。非常感谢您的帮助和知识。
答案 0 :(得分:0)
阅读用户输入,将其转换为int
并将其作为参数传递给range
:
studentamount = input("Please enter how many students ...: ") # this is a str
studentamount = int(studentamount) # cast to int ...
for count in range(studentamount): # ... because that's what range expects
# ...
答案 1 :(得分:0)
Python不允许您将变量作为范围输入。
Python 允许您输入变量作为范围,但它们必须是数字。 Input ()
以字符串形式读取输入,因此您需要将其输入。
所以,这是正确的:
```的Python studentamount = int(输入("请输入您班级中有多少学生:")
为范围内的计数(studentamount):
name = input ("Please enter student name: ")
mark = int(input("Please enter the student's mark)
```
P.S a try - except
子句在此处用于捕捉人们在[TypeError
]中输入非整数数据
P.S.P.S @schwobaseggl的例子也很好,使用嵌套函数studentamount = int(input("Text")
可能比较麻烦。
studentamount = input("Text")
studentamount = int(studentamount)
答案 2 :(得分:0)
您可以将每个学生姓名和标记存储在字典或元组中,并将每个字典(或元组)存储到列表中,参见代码示例(最后输入“no”退出或任何其他值重新循环程序):
response = None
while response != 'no':
student_count = int(input('Please enter the number of students: '))
students = []
mark_sum = 0
print('There are {} student(s).'.format(student_count))
for student_index in range(student_count):
student_order = student_index + 1
student_name = input('Please enter the name of student number {}: '.format(student_order))
student_mark = float(input('Please enter the mark of student number {}: '.format(student_order)))
students.append({'name': student_name, 'mark': student_mark})
mark_sum += student_mark
print('The average mark for {} student(s) is: {}'.format(student_count, mark_sum / student_count))
response = input('Do you want to enter marks for another class [yes][no]: ')