我要做的是读取文件的每一行,然后将其放入名为handleLine的其他函数中,然后创建输出,numericgrade计算总体百分比,然后lettergrade指定一个等级。
例如我在文件中 “姓名,姓氏”,分类,考试,决赛 我希望它输出 全名,分数,成绩
def main():
fin=open("scores.csv", "r")
fout=open("grades.csv", "w")
fout.write('"Name", "Score", "Grade"\n')
line=fin.readlines()[1:]
for line in line:
line=line.split(",")
handleLine(line)
fout.write('"' + lname + "," + fname + '" ,' + score +", " + grade+ ' ", ')
def numericGrade(midterm, final):
score=0.4*float(midterm) + (0.6 * float(final))
def letterGrade(score):
grade = None
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >=70:
grade ="C"
elif score >= 60:
grade = "D"
else:
grade = "F"
def handleLine(line):
fout=open("grades.csv", "w")
fname= line[1][1 : -1]
lname= line[0][1 : ]
midterm= line[2]
final = line[3]
numericGrade(midterm, final)
score = numericGrade(midterm,final)
grade = letterGrade(score)
return lname, fname, score, grade
if __name__=="__main__":
main()的
我在将一个函数放到另一个函数时遇到了麻烦,现在它说lname没有在第14行定义。我现在真的输了。
编辑: 我已经修好了
lname,fname,score,grade = handleLine(line)
但我现在第14行有错误
TypeError:无法连接'str'和'NoneType'对象
答案 0 :(得分:3)
仅返回值,而不是名称。
lname, fname, score, grade = handleLine(line)
答案 1 :(得分:3)
从函数返回值时,值的名称不是函数内部的值,而是函数返回时调用的值。
def myfunction():
num = 5
return num #returns 5
variableThatIsNotCalledNum = myfunction()
# my long named variable now holds the value 5
#error: no such variable around here
print num
# prints the 5
print variableThatIsNotCalledNum
另外一件事,numericGrade()
和letterGrade()
分别需要return
score
和grade
。