【问题描述】 文件score.txt中存储了若干学生的姓名、学号和3门考试课的成绩 要求:按总分从高到低输出学生成绩记录(按学号、姓名、三门课成绩的顺序)到文件sorted.txt 【输入形式】 文件中每行为一个学生信息,形式为:姓名,学号,成绩1,成绩2,成绩3 【输出形式】 按照总分从高到低输出学生信息到文件sorted.txt,每行一个学生的信息,输出形式为:学号,姓名,成绩1,成绩2,成绩3
时间: 2024-01-03 20:03:53 浏览: 220
【参考代码】
```python
# 打开score.txt文件,读取学生成绩信息
with open("score.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
# 将学生信息存储到列表中
students = []
for line in lines:
info = line.strip().split(",")
name, id, score1, score2, score3 = info
total_score = int(score1) + int(score2) + int(score3)
student = [id, name, score1, score2, score3, total_score]
students.append(student)
# 按总分从高到低排序
students.sort(key=lambda x: x[5], reverse=True)
# 将排序后的学生信息写入sorted.txt文件中
with open("sorted.txt", "w", encoding="utf-8") as f:
for student in students:
id, name, score1, score2, score3, total_score = student
f.write("{},{},{},{},{},{}\n".format(id, name, score1, score2, score3, total_score))
```
【注意事项】
- score.txt 文件中每行的格式必须为:姓名,学号,成绩1,成绩2,成绩3,用逗号分隔。
- 输出文件 sorted.txt 中每行的格式必须为:学号,姓名,成绩1,成绩2,成绩3,用逗号分隔。
- 如果成绩是字符串类型,需要转换成整型计算总分。
阅读全文