2016-03-06 124 views
0

这应该是根据所获得的等级和课程学分计算学期GPA的代码。使用功能找到GPA

必须使用coursePoints(credit, grade)函数来计算GPA。

但是在我的代码中,credit值没有改变,并且发生错误。

classnum=int(input("Enter the num of classes: ")) 

totalcredit=0 
totalgpa=0 

def main(): 
    for i in range(1,classnum+1): 
     print("class", i) 
     credit=int(input("Enter the credit: ")) 
     grade=str(input("Enter the grade: ")) 
     totalgpa+=coursePoints(credit,grade) 
     totalcredit+=credit 

    totalcourse=classnum 
    semestergpa=totalgpa/totalcredit 
    print("Semester summary") 
    print("courses taken: ", classnum) 
    print("credits taken: ", totalcredit) 
    print("GPA points: ", totalgpa) 
    print("Semester GPA: ", semestergpa) 

def coursePoints(Credit,Grade): 
    if Grade == 'A+' or Grade == 'a+': 
     return 4*Credit 
    elif Grade == 'A' or Grade == 'a': 
     return 4*Credit 
    elif Grade == 'A-' or Grade == 'a-': 
     return 3.67*Credit 
    elif Grade == 'B+' or Grade == 'b+': 
     return 3.33*Credit 
    elif Grade == 'B' or Grade =='b': 
     return 3*Credit 
    elif Grade == 'B-' or Grade == 'b-': 
     return 2.67*Credit 
    elif Grade == 'C+' or Grade == 'c+': 
     return 2.33*Credit 
    elif Grade == 'C' or Grade == 'c': 
     return 2*Credit    
    elif Grade == 'C-' or Grade == 'c-':       
     return 1.67*Credit     
    elif Grade =='D+' or Grade == 'd+':      
     return 1.33*Credit     
    elif Grade == 'D' or Grade == 'd':       
     return 1*Credit      
    elif Grade == 'D-' or Grade == 'd-':         
     return 0.33*Credit      
    else: 
     return 0 

main() 
+0

C +,B-和D-在第二个等式中应该小写吗? –

+0

感谢您的更正。你能帮忙修改一下这个功能吗? –

+0

请使用这里的注释上方的编辑链接来澄清发生了什么错误 –

回答

0

它会显示你正在返回一个变量赋值。

return gpa = 4*Credit 

你不需要等号,只是做

return 4*Credit 

修复所有return语句那样的。

此外,您对缩进的问题进行了编辑,所以这可能也是一个问题,但看起来这些问题已修复,并且为了获得正确的逻辑,请确定您的成绩的大写,因为我在评论中提到。