Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GPA计算器,如何将列表中的值添加到变量?_Python_Python 3.x - Fatal编程技术网

Python GPA计算器,如何将列表中的值添加到变量?

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

我试图创建一个GPA计算器作为一个小项目,但我不知道如何将用户输入的值加在一起。我使用if和elif命令为每个字母等级指定一个GPA编号。但是,当我试图将所有这些加在一起到变量“gtotal”的末尾时,它总是说0。我不知道我哪里出了问题,非常感谢你的帮助

            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