编写Python程序,在歌手大赛中,10名评委分别为10名学生打分,要求输入姓名和10个成绩,要求输出姓名,平均分,原始成绩(分割前五个成绩与后五个成绩为两行)
时间: 2024-10-19 13:17:14 浏览: 35
在Python中,你可以编写一个简单的脚本来完成这个任务。首先,创建一个字典来存储每个学生的姓名和成绩,然后计算平均分。下面是一个示例代码:
```python
def judge_concert():
# 初始化一个空字典来保存学生信息
students = {}
# 循环10次获取每个学生的姓名和10个成绩
for i in range(10):
name = input("请输入第{}名学生的姓名:".format(i+1))
scores = list(map(int, input("请输入他们的10个成绩,用逗号分隔:").split(',')))
# 记录学生姓名及其分数
students[name] = scores
# 计算每个学生的平均分并按姓名排序
average_scores = {name: sum(scores) / len(scores) for name, scores in students.items()}
sorted_students = dict(sorted(average_scores.items(), key=lambda item: item[1], reverse=True))
print("\n--- 学生姓名及平均分 ---")
for name, avg_score in sorted_students.items():
print(f"{name}: 平均分 {avg_score:.2f}")
# 分割原始成绩并打印
print("\n--- 原始成绩(前5名) ---")
for name, scores in students.items()[:5]:
print(f"{name}: {scores}")
print("\n--- 原始成绩(后5名) ---")
for name, scores in students.items()[5:]:
print(f"{name}: {scores}")
judge_concert()
```
当你运行这个程序时,它会提示你依次输入每位学生的姓名以及他们的10个成绩,并按照平均分从高到低排列。同时,它还会将原始成绩分为前后两部分分别展示。
阅读全文