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

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

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

Приведение типа: int() и float()

Мы уже знаем, что input() всегда возвращает строку. Проблема возникает, когда нужно что-то посчитать с введённым значением.

Попробуйте такой код:

a = input('Первое число: ')
b = input('Второе число: ')
print(a + b)

Если пользователь введёт 3 и 5, на экране появится 35, а не 8. Это не баг Python — это ожидаемое поведение: оператор + для строк означает конкатенацию, то есть склейку. Строка '3' плюс строка '5' — это строка '35'.

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

  • int() — превращает строку в целое число: int('25') даёт 25
  • float() — превращает строку в число с плавающей точкой: float('3.14') даёт 3.14

Это и называется приведением типа (type casting) — вы явно говорите Python, как интерпретировать значение.

На практике int() и float() оборачивают вызов input() прямо при присваивании:

age = int(input('Введите возраст: '))
price = float(input('Цена товара: '))

Что здесь происходит по шагам: сначала вычисляется внутренний вызов — input() возвращает строку, например '25'. Затем эта строка передаётся в int(), который возвращает число 25. И уже это число сохраняется в переменную age.

Теперь с переменной можно спокойно делать арифметику:

a = int(input('Первое число: '))
b = int(input('Второе число: '))
print(a + b)

При вводе 3 и 5 программа выведет 8 — потому что теперь a и b это числа, а не строки.

Выбор между int() и float() зависит от задачи: если ожидаете целое число (возраст, количество, год) — используйте int(). Если значение может быть дробным (цена, вес, температура) — float(). Стоит учесть, что float() принимает и целые значения без проблем: float('5') вернёт 5.0. А вот int() не умеет напрямую конвертировать строку с точкой: int('3.14') вызовет ошибку, даже если число выглядит корректным.