4.新建一个文本文件score.csv,用来保存10名考生3门课程成绩,内容如下: 考号,程序设计,细胞生物,生理学 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 5.以上各数据均使用英文逗号分隔。请编写程序读取文件内容,统计每门课程的平均成绩,最高分和最低分。
时间: 2023-07-27 12:27:32 浏览: 346
好的,我可以帮您解决这个问题。可以使用Python内置的`csv`模块来读取csv格式的文件,然后使用列表和字典等数据结构来保存数据和计算结果。代码如下:
```python
import csv
with open('score.csv', 'r', newline='') as f:
reader = csv.reader(f)
header = next(reader)
data = []
for row in reader:
data.append(row)
# 计算每门课程的平均成绩、最高分和最低分
scores = {}
for i in range(1, len(header)):
scores[header[i]] = [float(row[i]) for row in data]
avg_score = sum(scores[header[i]]) / len(scores[header[i]])
max_score = max(scores[header[i]])
min_score = min(scores[header[i]])
print("课程%s的平均成绩为:%.2f,最高分为:%d,最低分为:%d" % (header[i], avg_score, max_score, min_score))
```
代码中,首先使用`csv.reader()`函数读取csv文件内容,使用`next()`函数跳过文件头行,然后遍历读取每一行数据,将数据保存到一个二维列表`data`中。接着,使用字典`scores`来保存每门课程的成绩列表,使用列表推导式从`data`列表中取出每门课程的成绩,然后计算该门课程的平均成绩、最高分和最低分,并使用`print()`函数输出结果。
阅读全文