Python для новичковДанные и выраженияВвод от пользователя и преобразование типов

Ввод от пользователя и преобразование типов

Уроки курсаВвод от пользователя и преобразование типов

Ошибка ValueError при некорректном вводе

До этого момента мы предполагали, что пользователь вводит корректное число. Но на практике это не гарантировано: пользователь может ошибиться, ввести текст вместо цифры или поставить запятую вместо точки.

Что происходит в таком случае? Если пользователь вводит двадцать вместо 20, Python выдаст:

age = int(input('Введите возраст: '))
# Пользователь вводит: двадцать
# ValueError: invalid literal for int() with base 10: 'двадцать'

Программа не продолжает работу — она прерывается с сообщением об ошибке. То же произойдёт с float(), если строка не выглядит как число:

price = float(input('Цена: '))
# Пользователь вводит: 3,14  (запятая вместо точки)
# ValueError: could not convert string to float: '3,14'

Ключевая идея простая: int() и float() ожидают строку, которая содержит корректное число — и ничего лишнего. Буквы, запятые вместо точек, пустая строка — всё это вызовет ValueError.

Пока что у нас нет инструмента, чтобы перехватить такую ошибку и попросить пользователя ввести данные заново — это тема отдельного урока про try/except. На данном этапе достаточно понять: ValueError возникает предсказуемо, когда строка не соответствует ожидаемому числовому формату. Это не сбой Python, а явный сигнал о несоответствии типов.