все Python 3Исключенияисключение
ValueError
встроенные исключения
Вызывается, когда функция получает аргумент правильного типа, но недопустимого значения. Например, int('abc') или math.sqrt(-1).
Синтаксис
raise ValueError('сообщение')
Граница с TypeError простая: тип подошёл, а значение — нет. int('abc') это ValueError, а int([]) уже TypeError. int('12.5') тоже падает: int() не разбирает дробную часть, нужно сначала float(). Оборачивайте в except ValueError именно узкое место (int(input())), а не весь блок через except Exception — иначе спрячете собственные опечатки в коде.
Примеры
int('abc') # ValueError
float('inf') # ok — inf допустим
[1, 2, 3].index(99) # ValueError: 99 нет в списке
try:
x = int('нет')
except ValueError as e:
print('Ошибка:', e)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности