以Python代码的方式读取文件score.csv中的成绩数据,计算平均分并统计其中语文成绩大于等于80,英语成绩大于等于85的学生每门课程的成绩(结果按平均分从大到小排序),将结果输出至文件result.csv中。
时间: 2024-03-21 15:38:30 浏览: 235
好的,我知道了。以下是Python代码实现:
```python
import csv
# 读取score.csv文件中的成绩数据
with open('score.csv', 'r', encoding='utf-8-sig') as f:
reader = csv.DictReader(f)
scores = [row for row in reader]
# 计算平均分
total_score = [float(score['语文']) + float(score['数学']) + float(score['英语']) for score in scores]
average_score = sum(total_score) / len(total_score)
# 统计语文成绩大于等于80,英语成绩大于等于85的学生每门课程的成绩
high_scores = []
for score in scores:
if float(score['语文']) >= 80 and float(score['英语']) >= 85:
high_scores.append({
'姓名': score['姓名'],
'语文': float(score['语文']),
'数学': float(score['数学']),
'英语': float(score['英语']),
'平均分': (float(score['语文']) + float(score['数学']) + float(score['英语'])) / 3
})
# 按平均分从大到小排序
high_scores = sorted(high_scores, key=lambda x: x['平均分'], reverse=True)
# 将结果输出至文件result.csv中
with open('result.csv', 'w', encoding='utf-8-sig', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['姓名', '语文', '数学', '英语', '平均分'])
writer.writeheader()
for score in high_scores:
writer.writerow(score)
```
注意:在运行代码之前,需要先创建score.csv文件,并在其中写入成绩数据。另外,如果在Windows系统下运行代码,需要将文件编码方式指定为utf-8-sig,以防止文件开头出现BOM。
阅读全文