我对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) –