【发布时间】:2018-02-17 16:26:00
【问题描述】:
我有一个 CSV 文件,其当前格式如下。
这样的两行示例是:
first_Name last_Name test1 test2 test3 test4
Alex Brian 11 17 13 24
Pete Tong 19 14 12 30
现在我当前的代码不起作用,简单地说我不确定我是否在正确的轨道上。 我当前的代码:
def grader(test1, test2, test3, finalExam):
first = test1 * .20
second = test2 * .20
third = test3 * .20
fourth = finalExam *.40
finalGrade = first + second + third + fourth
return finalGrade
def gradeScores(FinalGrade):
if FinalGrade >= 90 and FinalGrade <= 100:
return("You received an A")
elif FinalGrade >= 80 and FinalGrade < 90:
return("You received a B")
elif FinalGrade >= 70 and FinalGrade < 80:
return("You received a C")
elif FinalGrade >= 60 and FinalGrade < 70:
return("You received a D")
else:
return("Sorry, you received an F")
我也有这行代码用来读取 CSV 文件,并显示在输出窗口中。
with open("studentGradeFrom.csv") as csvfile:
readFile = csv.reader(csvfile, delimiter=",", quotechar="¦")
for row in readFile:
print(row)
但是,由于我是 Python 新手,我正在寻求帮助来创建一个 Python 脚本,该脚本将查看结果并进行计算,从而告诉我学生是否通过或失败。 我希望这在一个单独的文件中完成。所以我猜我需要读取和写入不同的 CSV 文件,以显示学生是否失败或总体通过率。
with open("studentGradeTo.csv", 'w') as avg: #used to write to after the calculation is complete
loadeddata = open("studentGradeFrom.csv", 'r') #used to read the data from the CSV before calculation.
writer=csv.writer(avg)
readloaded=csv.reader(loadeddata)
listloaded=list(readloaded)
现在我的问题是:我将如何做这件事,从一个包含大约 50 个不同学生的文件中查看数据。虽然不使用学生成绩更改读取的 CSV,但仅更改显示通过或不及格成绩的 CSV 文件。任何帮助将不胜感激。
编辑:我忘了提到第一次测试将是最终成绩的 20%,与第二次和第三次测试相同。这三项合计占期末成绩的 60%。而第四次测试的价值占期末成绩的 40%。
【问题讨论】:
-
您希望输出文件究竟是什么样的?学生姓名和“你的成绩是 F”在不同的列中?
-
@BradSolomon 这是正确的。简单他们的名字,如果他们通过了,哪个等级。如果他们失败了,那么他们就会收到一个 F。
-
除了导入 csv 之外,有没有其他方法可以在没有任何其他模块的情况下做到这一点?
标签: python python-3.x csv