我正在尝试编写一个程序,读取CSV
学生分数列表,并执行以下操作:
程序计算每个学生的考试平均数,并使用math ceil将其四舍五入为整数,然后将名字和考试平均数写入另一个csv
文件,称为examScores.csv
最大分数5分以内的学生名字和分数,例如,如果最大分数为98,则所有得分的学生都>;=93应打印。
得分在0-59、60-69、70-79、80-89、90-100范围内的学生人数(要跟踪这些范围,您应该设置一个5号计数器列表;当您处理第一个范围内的数字时,您会更新位置0、第二个范围内的位置1等)。你知道吗
我很难接受这个。以下是迄今为止我编造的代码:
inpt1=open("grades.csv","r")
outpt1=open("examscores.csv","w")
studentname=[]
studentlastname=[]
gradeav=[]
highav=0
inpt1.readline()
for line in inpt1:
data=line.split(",")
averages=math.ceil(data[2])+float(data[3])/2
studentname.append(data[0])
studentlastname.append(data[1])
gradeav.append(averages)
inpt1.close()
outpt1.close()
我不能让math cell函数工作,我的附加也不能工作。当然我不想让任何人帮我解决这个问题,只需要一个提示或是朝着正确的方向推进。你知道吗
既然你是在寻求暗示,我就试试看。你知道吗
请注意,您将分别记录姓名和成绩。更有用的是在一致的数据结构中记录这些值。我喜欢一张单子。从…开始
接下来是文件读取、行分割和值提取。然后将其插入记录中。你知道吗
在循环结束时,按第一列降序排列记录。提示:google“python list of list sorted lambda”。从已排序的列表中,选择最大值及其下面的5个点。我把它作为练习留给你。你知道吗
您还可以使用排序列表将其拆分为不同的范围。提示:google“python对分包”。你知道吗
至于你的问题数学.ceil,试试看
如果需要更多的提示,请告诉我。:-)
相关问题 更多 >
编程相关推荐