我想限制用户输入,以便提供的N
服从N >0
或N < 100
。如何使用try .. except或if ... else验证用户输入?
我应该使用if... else
还是try... except
?你能否提供两种方法的例子?
我想限制用户输入,以便提供的N
服从N >0
或N < 100
。如何使用try .. except或if ... else验证用户输入?
我应该使用if... else
还是try... except
?你能否提供两种方法的例子?
我建议组合:)
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'
希望它能帮助。
而True:?这是什么意思? zindel。 – kn3l 2011-04-05 20:24:12
实际上是一个无限循环。这段代码不允许程序继续进行下去,直到值没有被输入为止。一般来说,它是某种“goto”仿真,适用于这类任务。看,周期内有'break'和'continue'语句 - 所以不用担心 - 它会在某个时候停止;) – zindel 2011-04-05 20:28:33
'while True:'是创建无限循环的一个习惯用法(在@ zindel的例子中这里是一个循环,直到用户输入的数字在允许的范围内,所以唯一的方法就是输入一个有效的整数(或Ctrl + C,我猜...) – bgporter 2011-04-05 20:29:27
if/else在这里可能更合适,因为引发的任何异常都会是你自己抛出的异常(并且你仍然必须处理它们)。
最简单的方法是if/else。
但我可能会做一个验证与if/else和抛出异常。
我想你可能打算'和',而不是'或'在你的情况。 – 2011-04-05 20:57:36