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

admin2020-04-10  38

问题 考生文件夹下存在一个Python源文件PY301.Py,请按照文件内说明修改代码,实现以下功能:
  score.csv文件中存储的是一个学生在第一季度同一学科对应的月考成绩,求出每一门学科在三个月中的平均成绩,将结果输出在考生文件夹下,命名为“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").split(",")) for line in ls[1:]: for i in line[1:]: sum = int(i)+sum avg = sun/3 x.append(avg) sum = 0 fo.write("语文:{:.2f}\n数学:{:.2f}\n英语:{:.2f}\n物理:{:.2f}\n科学:{:.2f}".format(x[0],x[1],x[2],x[3],x[4])) fi.close() fo.close()

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

最新回复(0)