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