刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

37.妙妙学校举行了知识竞赛,有一、二、三3个班分别派出最优秀的5名代表参加此次竞赛。这15名代表的成绩存放于”jscj.csv”文件中,现在妙妙读取了其中的数据,数据内容如图所示:
下列代码实现了读取竞赛分数信息,并输出各班平均分的情况,请你补全代码。
import csv
with open("/data/jscj.csv",encoding="utf-8")as f:
​ rows=list( ① (f))
​ sum=[0,0,0]
​ for row in rows[1:]:
​ if int(row[0])==1:
​ sum[0]+=int(row[2])
​ elif int( ② )==2:
​ sum[1]+=int(row[2])
​ else:
​ sum[2]+=int(row[2])
​ for i in range(1,4):
​ print(str(i)+"班的平均分为:",round( ③ /5,2))

使用微信搜索喵呜刷题,轻松应对考试!

答案:

br />① csv.reader② row[0]③ sum[i-1]

解析:

【喵呜刷题小喵解析】
首先,要读取csv文件,我们需要使用csv模块的reader函数。因此,在①处,应该填写csv.reader。

其次,在②处,我们需要判断当前行的班级编号。由于班级编号在第一列,所以应该填写row[0]。

最后,在③处,我们需要计算每个班级的平均分。由于sum数组已经记录了每个班级的总分,所以我们需要将总分除以5(每班5名代表)并保留两位小数。注意,我们需要使用i-1作为索引,因为数组索引从0开始,而我们的班级编号从1开始。

所以,完整的代码应该如下:
```python
import csv
with open("/data/jscj.csv", encoding="utf-8") as f:
rows = list(csv.reader(f))
sum = [0, 0, 0]
for row in rows[1:]:
if int(row[0]) == 1:
sum[0] += int(row[2])
elif int(row[0]) == 2:
sum[1] += int(row[2])
else:
sum[2] += int(row[2])
for i in range(1, 4):
print(str(i) + "班的平均分为:", round(sum[i-1] / 5, 2))
```
创作类型:
原创

本文链接:37.妙妙学校举行了知识竞赛,有一、二、三3个班分别派出最优秀的5名代表参加此次竞赛。这15名代表的

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share