某班的3门成绩,请按照3门成绩的平均成绩为排序依据,进行降序,并输出 平均成绩的前两名。 其中记录成绩的字符串为:“张三 5675 86;李四 75 85 90;王五 6695 99;赵六 7090 85"用python语言
时间: 2024-11-29 10:39:37 浏览: 46
首先,我们需要将输入的字符串分割成学生姓名和他们的各科成绩,然后计算每个学生的总分和平均分,最后根据平均分进行降序排序并输出前两名。以下是Python代码实现:
```python
def process_scores(scores):
# 分割字符串,存储数据结构
students = scores.split(";")
records = []
for student in students:
name, *grades = student.strip().split(" ")
total_score = sum(int(grade) for grade in grades)
avg_score = total_score / len(grades)
records.append((name, avg_score))
# 按照平均分降序排序
sorted_records = sorted(records, key=lambda x: x[1], reverse=True)
return sorted_records[:2]
scores_str = "张三 5675 86;李四 75 85 90;王五 6695 99;赵六 7090 85"
top_two_students = process_scores(scores_str)
for i, (name, avg_score) in enumerate(top_two_students):
print(f"{i+1}. {name}: 平均成绩 {avg_score}")
#
阅读全文