Как ввести число, а не текст, в Python (int)?
Я спросил у пользователя число через input, а потом не могу его сложить — Python ругается. Как сделать, чтобы input вернул число в Python? Зачем нужен int вокруг input?
2 ответа
Главный секрет: input всегда даёт текст, даже если ты напечатал цифры! Поэтому числа из него сначала надо превратить в настоящие числа через int. 🔢
Смотри, в чём проблема:
age = input("Возраст: ") # ввели 10, но это ТЕКСТ "10"
print(age + 1) # ОШИБКА! текст + число нельзя
Python думает, что 10 — это буквы, и не может прибавить к ним 1. Решение — обернуть в int(...) (от integer — целое число):
age = int(input("Возраст: ")) # теперь это число 10
print(age + 1) # 11, работает! ✅
int(...) говорит: «преврати этот текст в число».
Если нужно число с точкой (например, рост 1.5), бери float:
rost = float(input("Рост: "))
Запомни правило для новичка: хочешь считать введённое — оборачивай в int(). Хочешь просто показать или склеить как слово — оставляй как есть. Это причина номер один, почему у новичков «ломается» сложение после input! 😅
Простое правило: input даёт текст → для математики нужен int.
a = int(input("Первое: "))
b = int(input("Второе: "))
print(a + b) # настоящая сумма
Без int Python склеит строки: ввёл 2 и 3, а получил 23 вместо 5. Один int() вокруг input — и всё считается правильно. 👍