CSV编程读取wri

2024-03-28 10:47:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个程序,读取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函数工作,我的附加也不能工作。当然我不想让任何人帮我解决这个问题,只需要一个提示或是朝着正确的方向推进。你知道吗


Tags: csv程序列表datamathopen名字学生
1条回答
网友
1楼 · 发布于 2024-03-28 10:47:55

既然你是在寻求暗示,我就试试看。你知道吗

请注意,您将分别记录姓名和成绩。更有用的是在一致的数据结构中记录这些值。我喜欢一张单子。从…开始

records = []

接下来是文件读取、行分割和值提取。然后将其插入记录中。你知道吗

records.append([average, last_name, first_name])

在循环结束时,按第一列降序排列记录。提示:google“python list of list sorted lambda”。从已排序的列表中,选择最大值及其下面的5个点。我把它作为练习留给你。你知道吗

您还可以使用排序列表将其拆分为不同的范围。提示:google“python对分包”。你知道吗

至于你的问题数学.ceil,试试看

average = math.ceil(0.5* (float(data[2]) + float(data[3])))

如果需要更多的提示,请告诉我。:-)

相关问题 更多 >