Python编写程序,计算并输出每个学生的平均分(精确到小数点后1位)及总分。in.txt文件中,字段之间用英文逗号分隔,该文件存放学生的学号和语文数学英语的成绩等数据。将结果按总分降序排序后,将排序结果写入到out.txt中,数据之间的分隔符为英文逗号
时间: 2023-11-27 19:54:42 浏览: 112
python 输入学生考试成绩计算平均分 示例
5星 · 资源好评率100%
以下是Python程序的实现:
```python
# 读取文件
with open('in.txt', 'r') as f:
lines = f.readlines()
# 构建字典
data = {}
for line in lines:
items = line.strip().split(',')
id = items[0]
scores = [float(x) for x in items[1:]]
data[id] = scores
# 计算平均分和总分
totals = {}
averages = {}
for id, scores in data.items():
total = sum(scores)
average = round(total / len(scores), 1)
totals[id] = total
averages[id] = average
# 按总分降序排序
sorted_ids = sorted(totals, key=totals.get, reverse=True)
# 写入文件
with open('out.txt', 'w') as f:
for id in sorted_ids:
line = '{},{},{}\n'.format(id, totals[id], averages[id])
f.write(line)
```
其中,我们首先读取输入文件,并将学生的信息存储在一个字典中。然后,我们遍历字典,计算每个学生的平均分和总分,并存储在两个字典中。最后,我们按总分降序排序,并将结果写入输出文件中。
阅读全文