Python 尝试使用简单的数值条件除外
Python Try Except with Simple Numerical Conditions
此 python 代码允许用户输入数字等级,从中给出字母输出,但它也会尝试考虑字符串用户输入或不在范围为 0.0 到 1.0,通过将错误消息作为输出传递。
score = input("Enter Score: ")
try:
sr = float(score)
sr <= 1.0
sr >= 0.0
except:
print("Number entered must be between 0.0 and 1.0")
quit()
if sr >=0.9:
print ("A")
elif sr >=0.8:
print ("B")
elif sr >=0.7:
print ("C")
elif sr >=0.6:
print ("D")
else:
print ("F")
我遇到的问题是,当用户输入为 1.2 时,我希望得到我指定的错误输出,"Number entered must be between 0.0 and 1.0"。但是我得到了 "A".
的输出
我知道我可以使用 if 语句来获取所需的错误消息,而不是使用 'try except' 结构,但我只是想了解为什么 try-except 代码无法按我的方式工作想要它。
谢谢大家 :).
P.S。第一次发帖,如果我搞砸了关于堆栈溢出问题的礼仪或你有什么,我深表歉意。
这就是您所期待的...
score = input("Enter Score: ")
try:
sr = float(score)
assert sr <= 1.0 #needs an assert keyword
assert sr >= 0.0 #needs an assert keyword
except:
print("Number entered must be between 0.0 and 1.0")
quit()
如果您不写 assert the sr <= 1.0
,它只是尝试计算值并丢弃它,因为您没有将它分配给任何东西。
或者,您可以使用 if 语句并在条件不匹配时退出,就像这样。
score = input("Enter Score: ")
sr = float(score)
if sr > 1.0 or sr < 0.0:
print("Number entered must be between 0.0 and 1.0")
quit()
行:
sr <= 1.0
sr >= 0.0
计算两个布尔值,然后不使用这些值。我想你想要的是:
try:
sr = float(score)
assert(sr <= 1.0)
assert(sr >= 0.0)
except:
print("Number entered must be between 0.0 and 1.0")
quit()
当参数值为 false 时,Assert 引发 AssertionError。
此 python 代码允许用户输入数字等级,从中给出字母输出,但它也会尝试考虑字符串用户输入或不在范围为 0.0 到 1.0,通过将错误消息作为输出传递。
score = input("Enter Score: ")
try:
sr = float(score)
sr <= 1.0
sr >= 0.0
except:
print("Number entered must be between 0.0 and 1.0")
quit()
if sr >=0.9:
print ("A")
elif sr >=0.8:
print ("B")
elif sr >=0.7:
print ("C")
elif sr >=0.6:
print ("D")
else:
print ("F")
我遇到的问题是,当用户输入为 1.2 时,我希望得到我指定的错误输出,"Number entered must be between 0.0 and 1.0"。但是我得到了 "A".
的输出我知道我可以使用 if 语句来获取所需的错误消息,而不是使用 'try except' 结构,但我只是想了解为什么 try-except 代码无法按我的方式工作想要它。
谢谢大家 :).
P.S。第一次发帖,如果我搞砸了关于堆栈溢出问题的礼仪或你有什么,我深表歉意。
这就是您所期待的...
score = input("Enter Score: ")
try:
sr = float(score)
assert sr <= 1.0 #needs an assert keyword
assert sr >= 0.0 #needs an assert keyword
except:
print("Number entered must be between 0.0 and 1.0")
quit()
如果您不写 assert the sr <= 1.0
,它只是尝试计算值并丢弃它,因为您没有将它分配给任何东西。
或者,您可以使用 if 语句并在条件不匹配时退出,就像这样。
score = input("Enter Score: ")
sr = float(score)
if sr > 1.0 or sr < 0.0:
print("Number entered must be between 0.0 and 1.0")
quit()
行:
sr <= 1.0
sr >= 0.0
计算两个布尔值,然后不使用这些值。我想你想要的是:
try:
sr = float(score)
assert(sr <= 1.0)
assert(sr >= 0.0)
except:
print("Number entered must be between 0.0 and 1.0")
quit()
当参数值为 false 时,Assert 引发 AssertionError。