2011-04-05 163 views

回答

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' 

希望它能帮助。

+0

而True:?这是什么意思? zindel。 – kn3l 2011-04-05 20:24:12

+0

实际上是一个无限循环。这段代码不允许程序继续进行下去,直到值没有被输入为止。一般来说,它是某种“goto”仿真,适用于这类任务。看,周期内有'break'和'continue'语句 - 所以不用担心 - 它会在某个时候停止;) – zindel 2011-04-05 20:28:33

+0

'while True:'是创建无限循环的一个习惯用法(在@ zindel的例子中这里是一个循环,直到用户输入的数字在允许的范围内,所以唯一的方法就是输入一个有效的整数(或Ctrl + C,我猜...) – bgporter 2011-04-05 20:29:27

5

if/else在这里可能更合适,因为引发的任何异常都会是你自己抛出的异常(并且你仍然必须处理它们)。

1

最简单的方法是if/else。

但我可能会做一个验证与if/else和抛出异常。