How can I limit the user input to only integers in Python

Your code would become:

def Survey():

    print('1) Blue')
    print('2) Red')
    print('3) Yellow')

    while True:
        try:
            question = int(input('Out of these options\(1,2,3), which is your favourite?'))
            break
        except:
            print("That's not a valid option!")

    if question == 1:
        print('Nice!')
    elif question == 2:
        print('Cool')
    elif question == 3:
        print('Awesome!')
    else:
        print('That\'s not an option!')

The way this works is it makes a loop that will loop infinitely until only numbers are put in. So say I put ‘1’, it would break the loop. But if I put ‘Fooey!’ the error that WOULD have been raised gets caught by the except statement, and it loops as it hasn’t been broken.

Leave a Comment