考生文件夹下存在一个Python源文件“PY301.py”,请按照文件内说明修改代码,实现以下功能。 “score.csv”文件中存储的是一个学生在第一季度同一学科对应的月考成绩,求出每一门学科在3个月中的平均成绩,将结果输出在考生文件夹下,命名为“avg

admin2021-03-16  25

问题 考生文件夹下存在一个Python源文件“PY301.py”,请按照文件内说明修改代码,实现以下功能。
“score.csv”文件中存储的是一个学生在第一季度同一学科对应的月考成绩,求出每一门学科在3个月中的平均成绩,将结果输出在考生文件夹下,命名为“avg-score.txt”。参考如下格式。
语文:90.67
数学:88.00
英语:85.67
物理:67.33
科学:81.00
试题程序:
#以下代码为提示框架
#请在…处使用一行或多行代码替换
#注意:提示框架的代码可以任意修改,以完成程序功能为准
fi=open("score.csv","r")
fo=open("avg-score.txt","w")
ls=[]
x=[]
sum=0

fi.close()
fo.close()

选项

答案fi=open("score.csv","r") fo=open("avg-score.txt","w") ls=[] x=[] sum=0 for row in fi ls.append(row,strip("\n"),sqlit(",")) for line in ls[l:]: for i in line[l:] sum=int(i)+sum avg=sum/3 x.append(avg) sum=0 fd.write("语文{:2f}\n数学{:2f}\n英语{:2f}\n物理{:2f}\n科学{:2f}\n".format(x[0], x[2], x[3], x[4])) fi.close fo.close

解析 本题中“score.csv”文件中存储的是二维数据,需要将其表示为二维列表对象。通过for循环遍历“score.csv”文件中的每一行,再使用strip()和split()方法按照一定的格式将每一行存储到二维列表ls中。这样,列表ls中从索引为1的元素开始,存储的均为一个学科名和对应的3次考试成绩。要求平均成绩,需要将该学科3次考试的成绩相加,再除以3。实现方式为通过for循环遍历二维列表ls中索引从l开始的元素,再嵌套for循环遍历该元素中索引从1开始的元素,将遍历到的元素相加(即3次成绩相加),得出成绩总和和平均成绩,并将平均成绩追加到列表x中。最后,列表x中存储的就是每个学科的平均成绩,使用format()方法按照题目给出的参考格式将其写入“avg-score.txt”文件。
转载请注明原文地址:https://kaotiyun.com/show/eS6p777K
0

最新回复(0)