Найти - Пользователи
Полная версия: Исключения TypeError и ValueError
Начало » Python для новичков » Исключения TypeError и ValueError
1
madfeliks
Всем привет! Я совсем недавно начал изучать python и есть пара вопросов, ответы на которые я не нашел в google.
Есть функция, проверяющая правильность ввода, ее код я скопипастил со 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.

Заранее спасибо!
doza_and
madfeliks
и это ошибка типа, а не значения… или нет?
Нет, это ошибка значения переданного функции int.
madfeliks
так же с помощью исключений, а не if?
Я не знаю способа без if
if not i in [1,2]:
   raise Spring_Exception()
dimy44
Без if если assert заюзать
madfeliks
Спасибо за отклики!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB