0

我要做的是读取文件的每一行,然后将其放入另一个名为 handleLine 的函数中,然后创建输出,numericgrade 计算总体百分比,然后 lettergrade 分配一个等级。

例如在文件中我有“姓名,姓氏”,classid,考试,期末,我希望它输出全名,分数,等级

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__":

主要的()

我在将一个函数放到另一个函数时遇到了麻烦,现在它说 lname 没有在第 14 行定义。我现在真的迷路了。

编辑:我已经修复了

lname, fname, score,grade= handleLine(line)

但我现在在第 14 行有一个错误

TypeError:无法连接“str”和“NoneType”对象

4

2 回答 2

3

只返回,不返回名称。

lname, fname, score, grade = handleLine(line)
于 2012-04-19T03:19:49.650 回答
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

于 2012-04-19T03:29:55.537 回答