文件"score.csv",用来保存10名考生3门课程的成绩,如样例输入 score.csv (采用"UTF-8"编码方式保存文件) 请编程实现:统计每门课程的平均分(保留2位小数)、最高分和最低分 【输入形式】 无需输入,已有文件"score.csv" 【输出形式】 第一行给出第一个输出 第二行给出第二个输出 第三行给出第三个输出 【样例输入】 文件"score.csv"中的内容: 考号,程序设计,细胞生物,生理学 10153450101,72,96,88 10153450102,68,88,73 10153450103,63,63,66 10153450104,95,64,65 10153450105,89,88,57 10153450106,77,87,77 10153450107,67,64,97 10153450108,44,99,64 10153450109,82,73,75 10153450110,79,78,85 【样例输出】 程序设计: avg: 73.60, max: 95, min: 44 细胞生物: avg: 80.00, max: 99, min: 63 生理学: avg: 74.70, max: 97, min: 57 提示:用csv模块读取数据,用循环遍历reader对象,将三门课的成绩放在三个列表里
时间: 2023-08-21 14:01:40 浏览: 776
以下是Python代码实现:
```python
import csv
with open('score.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
headers = next(reader) # 获取表头
scores = [[int(row[1]), int(row[2]), int(row[3])] for row in reader] # 读取成绩并转为整型列表
# 计算每门课程的平均分、最高分和最低分
for i, subject in enumerate(headers[1:]):
subject_scores = [score[i] for score in scores]
avg_score = round(sum(subject_scores) / len(subject_scores), 2)
max_score = max(subject_scores)
min_score = min(subject_scores)
print(f'{subject}: avg: {avg_score:.2f}, max: {max_score}, min: {min_score}')
```
输出结果为:
```
程序设计: avg: 73.60, max: 95, min: 44
细胞生物: avg: 80.00, max: 99, min: 63
生理学: avg: 74.70, max: 97, min: 57
```
阅读全文