Python GPA计算器,如何将列表中的值添加到变量?
我试图创建一个GPA计算器作为一个小项目,但我不知道如何将用户输入的值加在一起。我使用if和elif命令为每个字母等级指定一个GPA编号。但是,当我试图将所有这些加在一起到变量“gtotal”的末尾时,它总是说0。我不知道我哪里出了问题,非常感谢你的帮助Python GPA计算器,如何将列表中的值添加到变量?,python,python-3.x,Python,Python 3.x,我试图创建一个GPA计算器作为一个小项目,但我不知道如何将用户输入的值加在一起。我使用if和elif命令为每个字母等级指定一个GPA编号。但是,当我试图将所有这些加在一起到变量“gtotal”的末尾时,它总是说0。我不知道我哪里出了问题,非常感谢你的帮助 print ("GPA Calculator") gtotal = 0 ctotal = 0 grades = [] f
print ("GPA Calculator")
gtotal = 0
ctotal = 0
grades = []
for i in (range(6)):
grades.append(input("Enter Grades in Order Here: "))
if grades == "A":
gtotal += 4
elif grades == "A-":
gtotal += 3.7
elif grades == "B+":
gtotal += 3.3
elif grades == "B":
gtotal += 3
elif grades == "B-":
gtotal += 2.7
elif grades == "C+":
gtotal += 2.3
elif grades == "C":
gtotal += 2
elif grades == "C-":
gtotal += 1.7
print(gtotal)
我希望看到一个包含代表用户字母输入的所有整数的总和。但是当我打印(gtotal)时,它保持返回0而不是创建if-else循环,而是使用字典。在这里,我将与字母等级相对应的等级相加,然后除以科目数。因此,您将获得加权坡度点平均值
In [3]: def get_grade(grade_list):
grade_dict = dict(zip(['A', 'A-', 'B+', 'B-', 'C+', 'C-'],
[4, 3.7, 3.3, 3, 2.7, 2.3, 2, 1.7]))
return sum([grade_dict[i] for i in grade_list])/(len(grade_list))
In [4]: get_grade(['A', 'A', 'A', 'B+'])
Out[4]: 3.825
不要创建if-else循环,只需使用字典即可。在这里,我将与字母等级相对应的等级相加,然后除以科目数。因此,您将获得加权坡度点平均值
In [3]: def get_grade(grade_list):
grade_dict = dict(zip(['A', 'A-', 'B+', 'B-', 'C+', 'C-'],
[4, 3.7, 3.3, 3, 2.7, 2.3, 2, 1.7]))
return sum([grade_dict[i] for i in grade_list])/(len(grade_list))
In [4]: get_grade(['A', 'A', 'A', 'B+'])
Out[4]: 3.825
您试图附加
等级
,因此在6次迭代后,它将是一个包含6个值的列表。由于您正在为每次迭代添加gtotal
,因此当您删除append
函数时,代码将正常工作
代码:
print ("GPA Calculator")
gtotal = 0
ctotal = 0
grades = []
for i in (range(6)):
grades = input("Enter Grades in Order Here: ")
if grades == "A":
gtotal += 4
elif grades == "A-":
gtotal += 3.7
elif grades == "B+":
gtotal += 3.3
elif grades == "B":
gtotal += 3
elif grades == "B-":
gtotal += 2.7
elif grades == "C+":
gtotal += 2.3
elif grades == "C":
gtotal += 2
elif grades == "C-":
gtotal += 1.7
print(gtotal)
GPA Calculator
24
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
输出:
print ("GPA Calculator")
gtotal = 0
ctotal = 0
grades = []
for i in (range(6)):
grades = input("Enter Grades in Order Here: ")
if grades == "A":
gtotal += 4
elif grades == "A-":
gtotal += 3.7
elif grades == "B+":
gtotal += 3.3
elif grades == "B":
gtotal += 3
elif grades == "B-":
gtotal += 2.7
elif grades == "C+":
gtotal += 2.3
elif grades == "C":
gtotal += 2
elif grades == "C-":
gtotal += 1.7
print(gtotal)
GPA Calculator
24
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
您试图附加
等级
,因此在6次迭代后,它将是一个包含6个值的列表。由于您正在为每次迭代添加gtotal
,因此当您删除append
函数时,代码将正常工作
代码:
print ("GPA Calculator")
gtotal = 0
ctotal = 0
grades = []
for i in (range(6)):
grades = input("Enter Grades in Order Here: ")
if grades == "A":
gtotal += 4
elif grades == "A-":
gtotal += 3.7
elif grades == "B+":
gtotal += 3.3
elif grades == "B":
gtotal += 3
elif grades == "B-":
gtotal += 2.7
elif grades == "C+":
gtotal += 2.3
elif grades == "C":
gtotal += 2
elif grades == "C-":
gtotal += 1.7
print(gtotal)
GPA Calculator
24
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
输出:
print ("GPA Calculator")
gtotal = 0
ctotal = 0
grades = []
for i in (range(6)):
grades = input("Enter Grades in Order Here: ")
if grades == "A":
gtotal += 4
elif grades == "A-":
gtotal += 3.7
elif grades == "B+":
gtotal += 3.3
elif grades == "B":
gtotal += 3
elif grades == "B-":
gtotal += 2.7
elif grades == "C+":
gtotal += 2.3
elif grades == "C":
gtotal += 2
elif grades == "C-":
gtotal += 1.7
print(gtotal)
GPA Calculator
24
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A
Enter Grades in Order Here: A