我正在尝试编写一个程序,将0.0到1.0之间的分数转换为字母等级。如果分数超出范围,则打印错误消息。如果分数介于0.0和1.0之间,请使用以下内容打印字母等级:
Score Grade
>= 0.9 A
>= 0.8 B
>= 0.7 C
>= 0.6 D
<0.6 F
要求:
这是我现在的代码:
import sys
scores = input ("Enter your score: ")
try:
floatScores = float(scores)
except:
print ("Bad Score")
if floatScores >= 0.0 and floatScores < 0.4:
print ("You have a: F")
elif floatScores >= 0.6 and floatScores < 0.7:
print ("You have a: D")
elif floatScores >= 0.7 and floatScores < 0.8:
print ("You have a: C")
elif floatScores >= 0.8 and floatScores < 0.9:
print ("You have a: B")
elif (floatScores >= 0.9 and floatScores <= 1.0:
print ("You have an: A")
else:
print ("Bad Score")
sys.exit()
请指教。 感谢
答案 0 :(得分:0)
我不要为你做功课,但是,我会给你一些提示......
您的第一个要求声明您需要使用input
命令获取分数的用户输入。你知道如何将变量设置为输入,所以从那开始。
接下来,您需要检查分数是否在0.0-1.0
之内。您可以使用if
语句检查输入是否大于或等于0且小于或等于1.
对于您的第三个要求,我建议您阅读this post。
对于您的第四项要求,我建议您使用Python的try-except
或assert
功能。
<小时/> 修改
现在您已经发布了一些我可以帮助您的代码。
在你的elif (floatScores >= 0.9 and floatScores <= 1.0:
中,你不需要(
,所以要摆脱它。
然后您的代码将正常工作! :)
<小时/> 注意
如果你不想要if-elif
的长链,这是一种稍微不同的方法。
def range_score():
score_range = {'A': 0.9, 'B': 0.8, 'C': 0.7, 'D': 0.6, 'F': 0.0}
try:
score = float(input('Score? '))
except ValueError:
return 'Bad Score'
assert 0.0 <= score <= 1.0, 'Bad Score'
for k, v in score_range.items():
if score >= v:
return k