try-except问题

请教各位大神,为什么规定范围的话用try-except这样不行,运行出来的结果是fscore可以输入任何数字,没有范围限制

Jason990420
最佳答案

执行 try 子句, 如果没有异常发生, 则跳过except子句并完成try语句的执行。

0.0 <= fscore <= 1.0

只要 fscore 是个数值, 整数或浮点数, 该结果为一逻辑值 TrueFalse, 并非异常, 所以不会执行except 子句.

所以该处的 try ... except ... 语句毫无用处.

正确的方式为

try:
    fscore = float(score)
except:
    print("Error, not acceptable float number !")

if not (0.0 <= fscore <= 1.0):
    print("Error, out of range !")
    exit()
elif fscore >= 0.9:
    print("A")
elif fscore >= 0.8:
    print("B")

...

elif fscore < 0.6:
    print("F")
3年前 评论
讨论数量: 2
Jason990420

执行 try 子句, 如果没有异常发生, 则跳过except子句并完成try语句的执行。

0.0 <= fscore <= 1.0

只要 fscore 是个数值, 整数或浮点数, 该结果为一逻辑值 TrueFalse, 并非异常, 所以不会执行except 子句.

所以该处的 try ... except ... 语句毫无用处.

正确的方式为

try:
    fscore = float(score)
except:
    print("Error, not acceptable float number !")

if not (0.0 <= fscore <= 1.0):
    print("Error, out of range !")
    exit()
elif fscore >= 0.9:
    print("A")
elif fscore >= 0.8:
    print("B")

...

elif fscore < 0.6:
    print("F")
3年前 评论

好的,非常感谢

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!