ограничивать ввод только целым числом (сбой текста программы PYTHON)

Python новичок здесь, пытаясь ограничить ввод викторины только числом 1,2 или 3.
Если текст введен, программа вылетает (поскольку ввод текста не распознается)
Вот адаптация того, что у меня есть: любая помощь приветствуется.

choice = input("Enter Choice 1,2 or 3:") if choice == 1: print "Your Choice is 1" elif choice == 2: print "Your Choice is 2" elif choice == 3: print "Your Choice is 3" elif choice > 3 or choice < 1: print "Invalid Option, you needed to type a 1, 2 or 3...." 

raw_input() этого используйте raw_input() а затем конвертируйте в int (вылавливая ValueError если это преобразование завершается с ошибкой). Вы даже можете включить тест диапазона и явно повысить значение ValueError() если данный выбор находится вне диапазона допустимых значений:

 try: choice = int(raw_input("Enter choice 1, 2 or 3:")) if not (1 <= choice <= 3): raise ValueError() except ValueError: print "Invalid Option, you needed to type a 1, 2 or 3...." else: print "Your choice is", choice 

Попробуйте это, предполагая, что choice – это строка, как это, по-видимому, относится к проблеме, описанной в вопросе:

 if int(choice) in (1, 2, 3): print "Your Choice is " + choice else: print "Invalid Option, you needed to type a 1, 2 or 3...."