Python 我如何使用try。。除非或如果…否则验证用户输入?

Python 我如何使用try。。除非或如果…否则验证用户输入?,python,Python,我想限制用户输入,以便提供的N符合N>0或N

我想限制用户输入,以便提供的
N
符合
N>0
N<100


如果。。。否则或
请尝试。。。除了
?您能提供这两种方法的示例吗?

if/else在这里可能更合适,因为提出的任何异常都是您自己抛出的(您仍然需要处理它们)。

最简单的方法是if/else

但我可能会同时使用if/else和抛出异常来执行验证程序。

我建议组合使用:)

为True时:
值=原始输入(“0到100之间的值:”)
尝试:
value=int(值)
除值错误外:
打印“请输入有效号码”
持续
如果0
#N的测试值
尝试:
N=int(N)
除值错误外:
raise VALUERROR('N必须是整数')
如果N<0或N>100:
Nrror=ValueError('N必须介于0和100之间,包括0和100)。)
提出错误

为True时:?什么意思?仙黛,实际上是一个无止境的循环。这段代码不允许程序继续运行,直到并没有输入值。一般来说,它是某种
goto
仿真,非常适合这种任务。看,循环中有
break
continue
语句-所以不要担心-它会在某个点停止;)
while True:
是一种创建无限循环的习惯用法(在这里的@zindel示例中,循环一直运行,直到用户输入一个在允许范围内的数字,因此,通过这段代码的唯一方法是输入一个有效的整数(我想是Ctrl+C…)
while True:
将永远循环,直到遇到
break
或引发未经处理的异常。因此,此代码将一直循环,直到
0明白为止,谢谢大家。:)我认为您可能希望在您的情况下使用“and”,而不是“or”。欢迎使用!当你发布一个答案时,试着解释一下,如果它是正确的话。当有更多的回复时,在你的情况下,展示你的优点和缺点。
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'
# 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