Как Python работает с типами
Теперь ты знаешь основные типы. Но в реальных программах типы часто нужно преобразовывать, и это место где новички часто спотыкаются.
Типичная ошибка: смешение типов
Попробуй запустить такой код:
age = input("Сколько тебе лет? ")
next_year = age + 1
print("В следующем году тебе будет:", next_year)
Получишь ошибку: TypeError: can only concatenate str (not "int") to str
Почему? Функция input() всегда возвращает строку, даже если пользователь ввёл число. Python получил строку "25" и попытался прибавить к ней число 1, и не смог.
Преобразование типов
Решение, явно сказать Python какой тип нужен:
age = input("Сколько тебе лет? ")
age = int(age) # преобразуем строку в целое число
next_year = age + 1
print("В следующем году тебе будет:", next_year)
Или короче:
age = int(input("Сколько тебе лет? "))
Основные функции преобразования
# str → int (строка в целое число)
x = int("42") # 42
x = int("3.7") # Ошибка! int не умеет так
# str → float (строка в дробное число)
x = float("3.14") # 3.14
x = float("42") # 42.0
# int/float → str (число в строку)
x = str(100) # "100"
x = str(3.14) # "3.14"
# int → float и обратно
x = float(5) # 5.0
x = int(3.9) # 3 (обрезает, не округляет!)
F-строки: удобный способ вставить переменную в текст
Вместо склеивания через + используй f-строки, они читаются намного лучше:
name = "Алекс"
age = 25
city = "Москва"
# Старый способ, неудобно
print("Привет, " + name + "! Тебе " + str(age) + " лет, ты из " + city)
# F-строка, удобно
print(f"Привет, {name}! Тебе {age} лет, ты из {city}")
Буква f перед кавычками говорит Python: "внутри фигурных скобок, переменные, подставь их значения".
Можно даже вставлять выражения:
price = 1500
quantity = 3
print(f"Итого: {price * quantity} рублей") # Итого: 4500 рублей
Когда что-то идёт не так: читаем ошибки
Python объясняет ошибки, нужно просто научиться их читать:
TypeError: can only concatenate str (not "int") to str
Перевод: "Ошибка типа: можно складывать только строку со строкой, но не с числом"
ValueError: invalid literal for int() with base 10: 'abc'
Перевод: "Ошибка значения: невозможно преобразовать 'abc' в число"
Ошибки, это не страшно. Это подсказки.
💡 Главная мысль: Python строго следит за типами. Перед операцией убедись что типы совместимы, а если нет, используй преобразование. F-строки делают вставку переменных в текст простой и читаемой.