需要创建 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#?