Зачем нужно приведение типов?
Когда вы получаете данные от пользователя через input(), они всегда приходят в виде строки (str). Чтобы выполнять математические операции, строку нужно преобразовать в число.
age_str = input("Сколько вам лет? ") # пользователь ввёл "25"
age = int(age_str) # теперь age = 25 (int)
print("Через год будет:", age + 1) # 26
💡 Совет: Правило:
input()всегда возвращает строку. Если нужны вычисления — приводите к числу!
Основные функции приведения
| Функция | Назначение | Пример |
|---|---|---|
int(x) | Преобразует в целое число | int("42") → 42 |
float(x) | Преобразует в число с плавающей точкой | float("3.14") → 3.14 |
str(x) | Преобразует в строку | str(42) → "42" |
bool(x) | Преобразует в логическое значение | bool(0) → False |
int() — преобразование в целое число
print(int("100")) # 100
print(int(3.99)) # 3 (дробная часть отбрасывается, НЕ округляется!)
print(int("-42")) # -42
# Ошибка при нечисловой строке:
# int("hello") → ValueError
float() — преобразование в дробное число
print(float("3.14")) # 3.14
print(float(10)) # 10.0
print(float("5")) # 5.0
str() — преобразование в строку
print(str(42)) # "42"
print(str(3.14)) # "3.14"
print(str(True)) # "True"
# Полезно для склеивания чисел со строками:
age = 25
print("Мне " + str(age) + " лет.") # Мне 25 лет.
# Без str() будет TypeError!
bool() — преобразование в логическое значение
print(bool(1)) # True
print(bool(0)) # False
print(bool("")) # False (пустая строка)
print(bool("hello")) # True (непустая строка)
print(bool([])) # False (пустой список)
print(bool([1, 2])) # True (непустой список)
💡 Совет: Запомните: «Пустые» значения (
0,"",[],{},None) приводятся кFalse. Всё остальное — кTrue.
Практический пример: калькулятор
a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
print("Сумма:", a + b)
print("Разность:", a - b)
print("Произведение:", a * b)
print("Частное:", a / b if b != 0 else "на ноль делить нельзя")
Частые ошибки
int("3.14")— ValueError: строка с точкой не может быть int. Сначалаfloat(), потомint()."Мне " + 25 + " лет"— TypeError: нельзя складывать строку и число. Используйтеstr(25).int(input())без проверки — если пользователь введёт буквы, программа упадёт. Используйтеtry/except(будет в уроке 10).