【发布时间】:2014-03-08 13:01:08
【问题描述】:
我正在尝试编写一个 Python 程序来计算和打印以下内容:
- 分数列表中的平均分数
- 分数列表中的最高分
- 获得最高分的学生的姓名。
程序首先要求用户输入病例数。对于每个案例,程序应要求用户输入学生人数。对于每个学生,程序要求用户输入学生的姓名和分数。对于每个案例,程序都会报告平均分、最高分和获得最高分的学生的姓名。
还有 如果一个 CASE 中有多个得分最高的人,则程序应仅报告第一次出现的情况。 平均分和最高分应精确到小数点后 2 位。 输出应该与示例程序输出中的一样。
到目前为止,我一直在尝试以下内容:
grade=[]
name_list=[]
cases=int(input('Enter number of cases: '))
for case in range(1,cases+1):
print('case',case)
number=int(input('Enter number of students: '))
for number in range (1,number+1):
name=str(input('Enter name of student: '))
name_list.append(name)
mark=float(input('Enter mark of student:'))
grade.append(mark)
highest= max (grade)
average=(sum(grade)/number)
high_name=grade.index(max(grade))
print('average',average)
print('Highest',highest)
print (high_name)
这是我到目前为止所破译的。我现在最大的问题是获得高分的人的名字。非常感谢任何想法和反馈。至于下面发布的答案,恐怕我唯一不明白的是字典功能,但其余的对我来说确实有意义。
【问题讨论】:
-
您认为将一个案例数量乘以现有案例列表会做什么?
-
我希望将案例编号 * 列表相乘可以让我输入案例。例如:假设 case = 2 的输入,那么将为 2 个案例创建 2 个列表我稍后想要的是进一步探索这两个案例,以便我可以添加以下信息:案例 x 中的学生姓名, x 中学生的分数, 学生分数的平均值, 高分, 与高分相关的印刷姓名。然后转到案例 2,我已经重新启动了我的代码,现在就像这样:
-
case= int(input('输入案件数量')) case=[] for case in range (0,case+1): cases.append(case*cases) print (cases ) student=int(input('输入学生人数:')) students=[]
-
你可以在 python 3.4+ docs.python.org/3.4/library/statistics.html使用新的 statistcs 模块
-
你现在在
high_name中已经有了最高等级的索引。最高年级和该年级学生在列表中的索引相同。
标签: python arrays python-3.x