输入全班学生的姓名和 《python编程》课程的成绩, 输出最高分与最低分的学生姓名与成绩。并将成绩转换为五分制,最后统计各分制的
时间: 2023-12-17 21:02:47 浏览: 90
人数。
以下是 Python 代码实现:
```python
data = {} # 存储学生姓名和成绩的字典
# 输入学生姓名和成绩
while True:
name = input("请输入学生姓名(输入 q 结束):")
if name == 'q':
break
score = float(input("请输入《Python编程》课程成绩:"))
data[name] = score
# 找出最高分和最低分的学生姓名和成绩
max_name, max_score = max(data.items(), key=lambda x:x[1])
min_name, min_score = min(data.items(), key=lambda x:x[1])
print("最高分学生:{},成绩:{}".format(max_name, max_score))
print("最低分学生:{},成绩:{}".format(min_name, min_score))
# 将成绩转换为五分制
grade_count = {5: 0, 4: 0, 3: 0, 2: 0, 1: 0} # 存储各分制的人数
for name, score in data.items():
grade = round(score / 20) # 四舍五入得到分制
if grade == 0:
grade = 1 # 最低分归为 1 分制
grade_count[grade] += 1
# 输出各分制的人数
for i in range(1, 6):
print("{} 分制:{} 人".format(i, grade_count[i]))
```
注意:这里采用了 `round()` 函数将成绩转换为五分制,但是它有一个问题:当成绩恰好处于两个五分制之间时,会向偏大的一端舍入。例如,85 分会被转换为 5 分制,而不是 4 分制。如果这个问题很严重,可以考虑使用其他函数或手动实现转换。
阅读全文