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

前端 未结 4 749
盖世英雄少女心
盖世英雄少女心 2020-11-29 10:37

I\'m trying to make a multiple choice survey that allows the user to pick from options 1-x. How can I make it so that if the user enters any characters besides numbers, retu

4条回答
  •  醉酒成梦
    2020-11-29 11:25

    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.

提交回复
热议问题