PYTHON文件“成绩.txt”中存放了学生的学号,姓名,语文,数学和英语成绩。编写程序,统计每位同学的总分,并按总分由高到低进行排序后输出(总分相同的情况,排名可任意),输出包括学号,姓名和总分三项。
时间: 2024-04-21 15:29:09 浏览: 138
好的,我可以帮你编写这个程序。以下是代码:
```python
# 打开文件,读取学生数据
with open('成绩.txt', 'r') as f:
data = f.readlines()
# 定义一个字典,用于存储每位同学的总分
total_scores = {}
# 遍历每行数据,计算每位同学的总分
for line in data:
line = line.strip() # 去除字符串两端的空白字符
if line: # 如果该行不为空
student = line.split(',') # 将该行数据按逗号分隔为一个列表
student_id, name, chinese, math, english = student # 将列表中的数据解包到对应变量中
total_score = int(chinese) + int(math) + int(english) # 计算该同学的总分
total_scores[student_id] = (name, total_score) # 将该同学的姓名和总分存入字典中
# 对字典按照总分进行排序
sorted_scores = sorted(total_scores.items(), key=lambda x: x[1][1], reverse=True)
# 输出结果
for i, item in enumerate(sorted_scores):
student_id, (name, total_score) = item
print(f"排名{i+1}: 学号:{student_id}, 姓名:{name}, 总分:{total_score}")
```
程序中首先打开文件,读取学生数据。然后遍历每行数据,计算每位同学的总分,将每位同学的姓名和总分存入字典中。最后对字典按照总分进行排序,并输出结果。
希望这个程序能够帮助到你。
阅读全文