这个Python 2.x程序的输出是什么?

时间:2017-04-28 12:40:16

标签: python

以下是该计划:

score = raw_input("Enter your score between 0.0 and 1.0: ")
try:
    fscore = float(score)
except:
    print "Enter a numerical value for score."
    exit()
if fscore >= 0.0 and fscore <= 1.0:
    if fscore >= 0.9:
        print "A"
    elif fscore >= 0.8:
        print "B"
    elif fscore >= 0.7:
        print "C"
    elif fscore >= 0.6:
        print "D"
    elif score >= 0.5:
        print "E"
    elif score < 0.5:
        print "F"
else:
    print "Score is out of range."

这是一个简单的计划,根据他们的分数给学生分数。如果您仔细注意,我在第4 elif语句中出现了语义错误。我没有写elif fscore >= 0.5,而是写了elif score >= 0.5

有趣的是,如果我在0.4中通过score,此程序会为我提供输出E。我不应该收到错误吗?即使我没有收到错误,为什么E?为什么不AB或其他?

1 个答案:

答案 0 :(得分:0)

我认为这与此帖子中提供的答案有关: Compare string to float in Python

请注意,您实际上是将字符串(用户的输入)与浮点数(您的elif中的0.5集)进行比较。显然这是一个设计错误。

注意:我之前也不知道这个:)