以下是该计划:
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
?为什么不A
或B
或其他?
答案 0 :(得分:0)
我认为这与此帖子中提供的答案有关: Compare string to float in Python
请注意,您实际上是将字符串(用户的输入)与浮点数(您的elif中的0.5集)进行比较。显然这是一个设计错误。
注意:我之前也不知道这个:)