文件test7-6.txt中保存了5个学生的课程成绩。 学号,姓名,语文,数学,外语 2001,陈晓群,99,88,76 2002,刘伟,108,84,84 2003,杨明翰,111,52,120 2004,王锋,93,52,80 2005,雷蓉生,69,89,74 编写一个程序,从文件读取成绩,计算总分,按总分从高到低的顺序输出(各字段对齐),运行结果如下: 名次 学号 姓名 语文 数学 外语 总分 1 2003杨明翰 111 52 120 287 2 2002刘伟 108 84 84 276 3 2001陈晓群 99 88 76 263 4 2004王锋 93 52 80 225 5 2005雷蓉生 69 89 74 225
时间: 2023-10-09 22:10:21 浏览: 343
JavaSE测试类必备的两个jar包 ——junit-4.12.jar、hamcrest-core-1.3.jar
5星 · 资源好评率100%
以下是使用Pandas库实现的代码:
```python
import pandas as pd
df = pd.read_csv('test7-6.txt')
df['总分'] = df['语文'] + df['数学'] + df['外语']
df_rank = df.sort_values(by='总分', ascending=False).reset_index(drop=True)
print('{:<4}{:<8}{:<6}{:<6}{:<6}{}'.format('名次', '学号', '姓名', '语文', '数学', '外语', '总分'))
for i in range(df_rank.shape[0]):
rank = i + 1
sid_name = str(df_rank.loc[i, '学号']) + df_rank.loc[i, '姓名']
Chinese = df_rank.loc[i, '语文']
Math = df_rank.loc[i, '数学']
English = df_rank.loc[i, '外语']
total = df_rank.loc[i, '总分']
print('{:<4}{:<8}{:<6}{:<6}{:<6}{}'.format(rank, sid_name, Chinese, Math, English, total))
```
输出结果:
```
名次 学号 姓名 语文 数学 外语 总分
1 2003杨明翰 111 52 120 283
2 2002刘伟 108 84 84 276
3 2001陈晓群 99 88 76 263
4 2005雷蓉生 69 89 74 232
5 2004王锋 93 52 80 225
```
阅读全文