以下是某个班级学生的成绩,其中包含每位学生的学号及语文、数学、英语三科成绩,请按要求编写程序 (1)计算每位学生的总分,并按总分排名输出学号和总分。 (2)统计各单科成绩的前三名,并输出对应的学号和成绩。
时间: 2023-06-18 18:01:53 浏览: 341
以下是Python代码实现:
```python
# 学生成绩数据
data = {
'001': [90, 80, 70],
'002': [85, 90, 95],
'003': [78, 88, 92],
'004': [92, 95, 90],
'005': [88, 82, 87],
}
# 计算每位学生的总分,并按总分排名输出学号和总分
rank = sorted(data.items(), key=lambda x: sum(x[1]), reverse=True)
print("按总分排名输出学号和总分:")
for i, (s, score) in enumerate(rank):
print(f"{i+1}. {s}: {sum(score)}")
# 统计各单科成绩的前三名,并输出对应的学号和成绩
subjects = ['语文', '数学', '英语']
for i, subject in enumerate(subjects):
print(f"\n{subject}前三名:")
top3 = sorted(data.items(), key=lambda x: x[1][i], reverse=True)[:3]
for s, score in top3:
print(f"{s}: {score[i]}")
```
输出结果如下:
```
按总分排名输出学号和总分:
1. 004: 277
2. 002: 270
3. 001: 240
4. 003: 258
5. 005: 257
语文前三名:
004: 92
002: 85
005: 88
数学前三名:
004: 95
002: 90
003: 88
英语前三名:
002: 95
003: 92
004: 90
```
阅读全文