Python excepting input only if in range
error-handling, python, user-input
Solution
Ctrl+C raises a `KeyboardInterruptException`, your `try … except` block catches this:
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'
Generally, you should just catch the exceptions you expect to happen (so no side effects appear, like your Ctrl+C problem). Also you should keep the `try … except` block as short as possible.
Problem
Hi I want to get a number from user and only except input within a certain range. The below appears to work but I am a noob and thought whilst it works there is no doubt a more elegant example... just trying not to fall into bad habits! One thing I have noticed is when I run the program CTL+C will not break me out of the loop and raises the exception instead. ``` 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") ``` All help greatly appreciated.