嗨,我想从用户那里得到一个数字,除了一定范围内的输入。
下面的方法似乎可行,但我是菜鸟,我认为虽然它可行,但毫无疑问,这是一个更优雅的例子……只是不想养成坏习惯!
我注意到的一件事是,当我运行程序时,CTL+C 不会让我跳出循环并引发异常。
while True:
try:
input = int(raw_input('Pick a number in range 1-10 >>> '))
# Check if input is in range
if input in range(1,10):
break
else:
print 'Out of range. Try again'
except:
print ("That's not a number")
非常感谢所有帮助。
原文由 hemmy 发布,翻译遵循 CC BY-SA 4.0 许可协议
Ctrl+C 引发一个
KeyboardInterruptException
,你的try … except
块捕捉到这个:通常,您应该只捕获您期望发生的异常(这样就不会出现副作用,比如您的 Ctrl+C 问题)。此外,您应该使
try … except
块尽可能短。