【问题标题】:GPA Calculator, How do I add values from list to a variable?GPA 计算器,如何将列表中的值添加到变量中?
【发布时间】:2019-01-17 04:03:00
【问题描述】:

我正在尝试将 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(gtotal)

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    不用创建 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
    

    【讨论】:

      【解决方案2】:

      您正在尝试附加 grades,因此在 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
      

      【讨论】:

        猜你喜欢
        • 2017-08-09
        • 2012-06-18
        • 1970-01-01
        • 2012-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-09
        • 2017-02-15
        相关资源
        最近更新 更多