需要创建 GPA 计算器才能在命令行中运行

Posted

技术标签:

【中文标题】需要创建 GPA 计算器才能在命令行中运行【英文标题】:Need to create GPA Calculator to run in command line 【发布时间】:2021-09-06 13:41:18 【问题描述】:

需要使用提供的字典编写 GPA 计算器,以根据字母等级的 4 个参数输出 GPA。我可以让代码在 google colab 或其他 IDE 中运行,但在 CL 中没有输出。有人可以指出我缺少什么吗?

''' 导入系统

#print (sys.argv[1])
#print (sys.argv[2])
#print (sys.argv[3])
#print (sys.argv[4])


def gpa_calculator():
  grades = [sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]]
  grades_upper = [each_string.upper() for each_string in grades]
  points = 0
  grade_chart = 'A':4.0, 'A-':3.66, 'B+':3.33, 'B':3.0, 'B-':2.66,
                 'C+':2.33, 'C':2.0, 'C-':1.66, 'D+':1.33, 'D':1.00, 'D-':.66, 'F':0.00
  for grade in grades_upper:
    points += grade_chart[grade]
  gpa = points / len(grades)
  rounded_gpa = round(gpa,2)
  return rounded_gpa
  print (rounded_gpa)

gpa_calculator()'''

【问题讨论】:

您面临哪些错误或困难? 【参考方案1】:
return rounded_gpa
print (rounded_gpa)

您似乎在到达 print 语句之前从函数中返回了值。我猜这个值是正确返回的,但是在调用函数时你没有对返回值做任何事情,所以没有任何东西输出到屏幕上。

你应该把print(...)调用移到return语句的上方,或者在调用函数时打印出结果:

print(gpa_calculate())

【讨论】:

谢谢你们。这看起来很简单,但非常重要。感谢您的帮助。【参考方案2】:

那是因为你在print 之前先return

在像 google colab 这样的 jupyter notebook 中,每个单元格都会打印最后一行返回的任何内容(如果有的话)。这就是为什么在这样的环境中你会得到输出。

更正的代码:

import sys

#print (sys.argv[1])
#print (sys.argv[2])
#print (sys.argv[3])
#print (sys.argv[4])


def gpa_calculator():
  grades = [sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]]
  grades_upper = [each_string.upper() for each_string in grades]
  points = 0
  grade_chart = 'A':4.0, 'A-':3.66, 'B+':3.33, 'B':3.0, 'B-':2.66,
                 'C+':2.33, 'C':2.0, 'C-':1.66, 'D+':1.33, 'D':1.00, 'D-':.66, 'F':0.00
  for grade in grades_upper:
    points += grade_chart[grade]
  gpa = points / len(grades)
  rounded_gpa = round(gpa,2)
  print(rounded_gpa)
  return rounded_gpa

gpa_calculator()

输出:

C:\Users\XXXXX\Desktop>python3 a.py A B C D
2.5

C:\Users\XXXXX\Desktop>python3 a.py A A A A
4.0

【讨论】:

谢谢。这就是答案。如此简单,但它让我难住了。

以上是关于需要创建 GPA 计算器才能在命令行中运行的主要内容,如果未能解决你的问题,请参考以下文章

如何访问行中的每个元素?

为啥我的程序需要两行输入,为啥我的 GPA 计算错误 c#?

如何在这个 GPA 计算器中构建我的 for 循环?爪哇

(HDU)1202 -- The calculation of GPA (计算GPA)

使用一组学生及其各自的 GPA 对 GPA 进行各种计算

GPA怎么算