hem*_*mmy 4 python error-handling user-input
嗨,我想从用户那里得到一个号码,只是在一定范围内输入.
下面似乎工作,但我是一个菜鸟和思想,虽然它的工作,毫无疑问是一个更优雅的例子...只是努力不陷入坏习惯!
我注意到的一件事是当我运行程序时,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")
Run Code Online (Sandbox Code Playgroud)
所有帮助非常感谢.
Ctrl + C引发a KeyboardInterruptException,你的try … except块捕获了这个:
while True:
try:
input = int(raw_input('Pick a number in range 1-10 >>> '))
except ValueError: # just catch the exceptions you know!
print 'That\'s not a number!'
else:
if 1 <= input < 10: # this is faster
break
else:
print 'Out of range. Try again'
Run Code Online (Sandbox Code Playgroud)
通常,您应该捕获预期发生的异常(因此不会出现副作用,例如您的Ctrl + C问题).你也应该尽量try … except缩短块.
| 归档时间: |
|
| 查看次数: |
27579 次 |
| 最近记录: |