我试图计算取[0]=14224的学生的数字分数的平均值。但是我如何告诉我的程序忽略任何带有“W”的分数呢
import sys
import csv
def findnumericgrade(grade):
if grade == 'A':
return 4.0
elif grade == 'B':
return 3.0
else:
return 2.0
def loaddata(filename, course):
count = 0
total = 0.0
with open(filename, 'r') as f:
lines = csv.reader(f)
next(lines)
for row in lines:
if course in row[0]:
get_grade = findnumericgrade(row[3])
total += float(get_grade)
count += 1
avg = total / count
print(f"The {course} average is: {round(avg, 2)}")
loaddata('studentdata.csv', sys.argv[1])
当然有很多方法。最简单的方法可能只是检查“W”字符串并继续下一行
实现这一点的一种方法是使用continue控件继续循环中的下一个迭代
您还可以通过将if语句设置为
and
boolean operation来实现这一点,以确保课程成绩不是“W”上面的解决方案可能是最实用的,因为这看起来像某种实用程序脚本,但是根据您期望数据集的大小,您可以使用类似pandas的东西。然后您就可以访问它提供的所有数据操作和分析工具
*使用studentdata.csv中的以下数据测试解决方案
相关问题 更多 >
编程相关推荐