2016-03-06 128 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語句那樣的。

此外,您對縮進的問題進行了編輯,所以這可能也是一個問題,但看起來這些問題已修復,並且爲了獲得正確的邏輯,請確定您的成績的大寫,因爲我在評論中提到。