我對Python和任何語言都很陌生。我在一週前開始學習。我正在努力創建這個計算程序,它可以爲你計算GPA,只需將你的字母分數放入即可。這一切都很順利,直到出現錯誤時才結束。我會告訴你的錯誤我可以在if語句中命名變量嗎? Python
這是代碼,錯誤消息將顯示在底部。
$def grades(grades_combined):
print "This program will tell you what your total GPA for the semester is."
print "Just enter your grades, and Voila!"
a_1 = 4.4
a = 4.0
a_2 = 3.6
b_1 = 3.4
b = 3.0
b_2 = 2.6
c_1 = 2.4
c = 2
c_2 = 1.6
d_1 = 1.4
d = 1
d_2 = 0.6
f = 0
print """We are going to ask you for all letter grades, in any order. Please
put the letter first, and then the symbol (if any). If there are non-applicable
grades (such as those not entered), just click return."""
print "Press return to continue"
raw_input("Continue!")
grade_1 = raw_input("Grade #1: ")
grade_2 = raw_input("Grade #2: ")
grade_3 = raw_input("Grade #3: ")
grade_4 = raw_input("Grade #4: ")
grade_5 = raw_input("Grade #5: ")
grade_6 = raw_input("Grade #6: ")
grade_7 = raw_input("Grade #7: ")
grade_8 = raw_input("Grade #8: ")
if grade_1 == "a+":
grade_1_no = a_1
elif grade_1 == "a":
grade_1_no = a
elif grade_1 == "a-":
grade_1_no = a_2
elif grade_1 == "b+":
grade_1_no = b_1
elif grade_1 == "b":
grade_1_no = b
elif grade_1 == "b-":
grade_1_no = b2
elif grade_1 == "c+":
grade_1_no = c_1
elif grade_1 == "c":
grade_1_no = c
elif grade_1 == "c-":
grade_1_no = c_2
elif grade_1 == "d+":
grade_1_no = d_1
elif grade_1 == "d":
grade_1_no = d
elif grade_1 == "d-":
grade_1_no = d_2
elif grade_1 == "f":
grade_1_no = f
if grade_8 == "a+":
grade_8_no = a_1
elif grade_8 == "a":
grade_8_no = a
elif grade_8 == "a-":
grade_8_no = a_2
elif grade_8 == "b+":
grade_8_no = b_1
elif grade_8 == "b":
grade_8_no = b
elif grade_8 == "b-":
grade_8_no = b_2
elif grade_8 == "c+":
grade_8_no = c_1
elif grade_8 == "c":
grade_8_no = c
elif grade_8 == "c-":
grade_8_no = c_2
elif grade_8 == "d+":
grade_8_no = d_1
elif grade_8 == "d":
grade_8_no = d
elif grade_8 == "d-":
grade_8_no = d_2
elif grade_8 == "f":
grade_8_no = f
if grade_2 == "a+":
grade_2_no = a_1
elif grade_2 == "a":
grade_2_no = a
elif grade_2 == "a-":
grade_2_no = a_2
elif grade_2 == "b+":
grade_2_no = b_1
elif grade_2 == "b":
grade_2_no = b
elif grade_2 == "b-":
grade_2_no = b_2
elif grade_2 == "c+":
grade_2_no = c_1
elif grade_2 == "c":
grade_2_no = c
elif grade_2 == "c-":
grade_2_no = c_2
elif grade_2 == "d+":
grade_2_no = d_1
elif grade_2 == "d":
grade_2_no = d
elif grade_2 == "d-":
grade_2_no = d_2
elif grade_2 == "f":
grade_2_no = f
if grade_3 == "a+":
grade_3_no = a1
elif grade_3 == "a":
grade_3_no = a
elif grade_3 == "a-":
grade_3_no = a_2
elif grade_3 == "b+":
grade_3_no = b_1
elif grade_3 == "b":
grade_3_no = b
elif grade_3 == "b-":
grade_3_no = b_2
elif grade_3 == "c+":
grade_3_no = c_1
elif grade_3 == "c":
grade_3_no = c
elif grade_3 == "c-":
grade_3_no = c_2
elif grade_3 == "d+":
grade_3_no = d_1
elif grade_3 == "d":
grade_3_no = d
elif grade_3 == "d-":
grade_3_no = d_2
elif grade_3 == "f":
grade_3_no = f
if grade_4 == "a+":
grade_4_no = a_1
elif grade_4 == "a":
grade_4_no = a
elif grade_4 == "a-":
grade_4_no = a_2
elif grade_4 == "b+":
grade_4_no = b_1
elif grade_4 == "b":
grade_4_no = b
elif grade_4 == "b-":
grade_4_no = b_2
elif grade_4 == "c+":
grade_4_no = c_1
elif grade_4 == "c":
grade_4_no = c
elif grade_4 == "c-":
grade_4_no = c_2
elif grade_4 == "d+":
grade_4_no = d_1
elif grade_4 == "d":
grade_4_no = d
elif grade_4 == "d-":
grade_4_no = d_2
elif grade_4 == "f":
grade_4_no = f
if grade_5 == "a+":
grade_5_no = a_1
elif grade_5 == "a":
grade_5_no = a
elif grade_5 == "a-":
grade_5_no = a_2
elif grade_5 == "b+":
grade_5_no = b_1
elif grade_5 == "b":
grade_5_no = b
elif grade_5 == "b-":
grade_5_no = b_2
elif grade_5 == "c+":
grade_5_no = c_1
elif grade_5 == "c":
grade_5_no = c
elif grade_5 == "c-":
grade_5_no = c2
elif grade_5 == "d+":
grade_5_no = d1
elif grade_5 == "d":
grade_5_no = d
elif grade_5 == "d-":
grade_5_no = d2
elif grade_5 == "f":
grade_5_no = f
if grade_6 == "a+":
grade_6_no = a_1
elif grade_6 == "a":
grade_6_no = a
elif grade_6 == "a-":
grade_6_no = a_2
elif grade_6 == "b+":
grade_6_no = b_1
elif grade_6 == "b":
grade_6_no = b
elif grade_6 == "b-":
grade_6_no = b_2
elif grade_6 == "c+":
grade_6_no = c_1
elif grade_6 == "c":
grade_6_no = c
elif grade_6 == "c-":
grade_6_no = c_2
elif grade_6 == "d+":
grade_6_no = d_1
elif grade_6 == "d":
grade_6_no = d
elif grade_6 == "d-":
grade_6_no = d_2
elif grade_6 == "f":
grade_6_no = f
if grade_7 == "a+":
grade_7_no = a_1
elif grade_7 == "a":
grade_7_no = a
elif grade_7 == "a-":
grade_7_no = a_2
elif grade_7 == "b+":
grade_7_no = b_1
elif grade_7 == "b":
grade_7_no = b
elif grade_7 == "b-":
grade_7_no = b_2
elif grade_7 == "c+":
grade_7_no = c_1
elif grade_7 == "c":
grade_7_no = c
elif grade_7 == "c-":
grade_7_no = c_2
elif grade_7 == "d+":
grade_7_no = d_1
elif grade_7 == "d":
grade_7_no = d
elif grade_7 == "d-":
grade_7_no = d_2
elif grade_7 == "f":
grade_7_no = f
grades_combined = ((grade_1_no + grade_2_no + grade_3_no + grade_4_no + grade_5_no,
+ grade_6_no + grade_7_no + grade_8_no)/8)
print "Your total GPA is %r" % grades_combined $
這是錯誤
Traceback (most recent call last): File "STUDY19", line 252, in <module> grades_combined = ((grade_1_no + grade_2_no + grade_3_no + grade_4_no + grade_5_no, NameError: name 'grade_2_no' is not defined
$
請幫助非常感謝!
的變量僅在範圍上的if語句。真的應該有更好的方法來做到這一點,而不是一噸ifs和其他ifs ... – Li357
閱讀關於[MCVE]的M(http://stackoverflow.com/help/mcve)。 –
查看使用字典將字符串(例如「a +」)映射到值(例如4.4) –