文件 test6.txt 中保存了 5 个学生的课程成绩。(英文姓名) 学号,姓名,语文,数学,外语 2001,Tom,99,88,76 2002,John,108,84,84 2003,Mark,111,56,120 2004,Mary,93,52,80 2005,Alice,62,89,74 编写一个程序,从文件读取成绩,计算总分,按总分从高到低的顺序输出(各字段对齐
时间: 2023-09-23 08:04:24 浏览: 95
编写程序,输入并保存5名学生的信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息。学生信息包括:学号、姓名、成绩。
以下是 Python 代码实现:
```python
with open('test6.txt', 'r') as f:
lines = f.readlines()
header = lines[0].strip().split(',')
data = []
for line in lines[1:]:
student = line.strip().split(',')
student_data = {
header[0]: student[0],
header[1]: student[1],
header[2]: int(student[2]),
header[3]: int(student[3]),
header[4]: int(student[4]),
'total': int(student[2]) + int(student[3]) + int(student[4])
}
data.append(student_data)
sorted_data = sorted(data, key=lambda x: x['total'], reverse=True)
print("{:<10}{:<10}{:<10}{:<10}{:<10}{:<10}".format(header[0], header[1], header[2], header[3], header[4], 'total'))
for student in sorted_data:
print("{:<10}{:<10}{:<10}{:<10}{:<10}{:<10}".format(student[header[0]], student[header[1]], student[header[2]], student[header[3]], student[header[4]], student['total']))
```
输出结果为:
```
学号 姓名 语文 数学 外语 total
2003 Mark 111 56 120 287
2002 John 108 84 84 276
2001 Tom 99 88 76 263
2004 Mary 93 52 80 225
2005 Alice 62 89 74 225
```
阅读全文