Есть функция, проверяющая правильность ввода, ее код я скопипастил со stackoverflow
while True: try: choice = int(raw_input('Your choice: ')) except TypeError: print 'input digit 1 or 2\n try once more' else: break
Вопрос первый: в таком виде код не работает, т.е. исключение при вводе не integer не обрабатывается. Зато все работает если TypeError заменить на ValueError… почему? Функция int() должна ведь выкинуть что то типа type mismatch и это ошибка типа, а не значения… или нет? Если я ошибаюсь, подскажите пожалуйста в чем.
Второй вопрос: как мне сюда прикрепить проверку введенного значения, так же с помощью исключений, а не if? Нужно чтобы все введенные значения кроме 1 и 2 вызывали исключение ValueError.
Заранее спасибо!