Python
Какой тип данных возвращает input() в Python: строка, числа и преобразование
Функция input() в Python всегда возвращает строку, то есть тип str
Даже если пользователь ввел число, Python получает текст
age = input("Сколько вам лет? ")
print(type(age))
Если ввести 25, программа выведет
<class 'str'>
Это главный момент: input() не угадывает, что вы имели в виду число. Она просто читает то, что пользователь набрал в консоли
Почему так сделано
Пользователь может ввести что угодно
25
Динар
10.5
да
Москва
Python не знает заранее, нужен вам текст, целое число, дробное число или команда. Поэтому input() возвращает универсальный вариант — строку
А дальше программист сам решает, во что ее превратить
Как ввести число через input()
Если нужно целое число, используйте int()
age_text = input("Сколько вам лет? ")
age = int(age_text)
print(age + 1)
Можно написать короче
age = int(input("Сколько вам лет? "))
print(age + 1)
Если пользователь введет 25, вывод будет
26
Как ввести дробное число
Для дробных чисел используйте float()
price = float(input("Цена товара: "))
count = int(input("Количество: "))
print(price * count)
Если ввести цену 12.5 и количество 4, Python посчитает 50.0
Важно: в Python дробная часть пишется через точку, не через запятую
12.5 правильно
12,5 вызовет ошибку при float()
Почему два числа склеиваются вместо сложения
Новички часто пишут так
first = input("Первое число: ")
second = input("Второе число: ")
print(first + second)
Если ввести 10 и 15, результат будет
1015
Это не ошибка Python. Это сложение строк. Для строк оператор + означает склеивание
Правильно так
first = int(input("Первое число: "))
second = int(input("Второе число: "))
print(first + second)
Теперь результат будет
25
Как проверить тип данных
Используйте type()
value = input("Введите что-нибудь: ")
print(value)
print(type(value))
Для проверки после преобразования
number = int(input("Введите число: "))
print(type(number))
Вывод
<class 'int'>
Как обработать неправильный ввод
Если пользователь должен ввести число, но вводит текст, int() выдаст ошибку ValueError
Например
age = int(input("Возраст: "))
Если ввести abc, программа упадет
Для учебного кода можно добавить обработку
text = input("Возраст: ")
try:
age = int(text)
print(f"Через год вам будет {age + 1}")
except ValueError:
print("Введите возраст числом, например 25")
Так программа не падает, а объясняет пользователю, что не так
Как ввести несколько чисел в одной строке
Если пользователь вводит два числа через пробел
10 15
Можно сделать так
text = input("Введите два числа через пробел: ")
first_text, second_text = text.split()
first = int(first_text)
second = int(second_text)
print(first + second)
Более короткий вариант
first, second = map(int, input("Введите два числа: ").split())
print(first + second)
Но для новичка лучше сначала разобрать длинный вариант. В нем видно, что происходит: строка делится на части, каждая часть превращается в число, потом числа складываются
Что значит запрос «как вводить чему равно a python»
Обычно человек хочет написать что-то вроде
a = ввод пользователя
В Python это делается так
a = input("Введите a: ")
print(a)
Если a должно быть числом
a = int(input("Введите a: "))
print(a * 2)
Если a должно быть дробным числом
a = float(input("Введите a: "))
print(a / 2)
Мини-задача
Напишите программу, которая спрашивает два числа и выводит их сумму, разность и произведение
first = int(input("Первое число: "))
second = int(input("Второе число: "))
print(f"Сумма: {first + second}")
print(f"Разность: {first - second}")
print(f"Произведение: {first * second}")
Проверка
Первое число: 10
Второе число: 3
Сумма: 13
Разность: 7
Произведение: 30
Частые ошибки
Забыл int()
Код
number = input("Число: ")
print(number + 10)
Ошибка
TypeError: can only concatenate str (not "int") to str
Исправление
number = int(input("Число: "))
print(number + 10)
Ввел дробное число в int()
Код
number = int(input("Число: "))
Если ввести 10.5, будет ошибка. Для дробных чисел нужен float()
number = float(input("Число: "))
Ввел число с запятой
float() ждет точку
10.5
Если хочется принять запятую, можно заменить ее на точку
text = input("Цена: ")
price = float(text.replace(",", "."))
print(price)
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Как проверить тип данных в Python: type(), isinstance() и частые ошибки
- Pandas и Matplotlib с Python: основы анализа данных
- function_name в Python: как ввести имя через input() и передать его в функцию
- round в Python: как округлять числа до целого, сотых и нужного количества знаков