我想限制用户输入,以便提供的N
服从N >0
或N < 100
。
我应该使用if... else
还是try... except
?你能提供这两种方法的例子吗?
答案 0 :(得分:9)
我建议组合:)
while True:
value = raw_input('Value between 0 and 100:')
try:
value = int(value)
except ValueError:
print 'Valid number, please'
continue
if 0 <= value <= 100:
break
else:
print 'Valid range, please: 0-100'
希望它有所帮助。
答案 1 :(得分:5)
如果/ else在这里可能更合适,因为提出的任何异常都是你自己抛出的(并且你仍然需要处理它们)。
答案 2 :(得分:1)
最简单的方法是if / else。
但我可能同时使用if / else和抛出异常的验证器。
答案 3 :(得分:0)
# test value of N
try:
N = int(N)
except ValueError:
raise ValueError('N must be integer')
if N < 0 or N > 100:
NError = ValueError('N must be between 0 and 100, inclusive.')
raise NError