Глава 4 · Python любит числа

Преобразование типов чисел

Числа можно превращать друг в друга и в текст — но не всегда наоборот, и не всегда так, как кажется на первый взгляд.

У каждого числового типа есть своя функция-преобразователь с тем же именем: int(), float(), complex(). Кроме того, любое число можно превратить в текст функцией str() — и наоборот, текст, похожий на число, можно превратить обратно.

preobrazovanie.py
whole = int(3.99)
print(whole)      # 3 — дробная часть отбрасывается, а не округляется

decimal = float(7)
print(decimal)    # 7.0

text = str(42)
print(text, type(text))   # "42" <class 'str'>
int() отбрасывает дробную часть, а не округляет
int(3.99) равно 3, а не 4 — это усечение (truncation) в сторону нуля, а не округление. Для настоящего округления нужна отдельная функция round() (раздел 4.13).

Направление усечения важно и для отрицательных чисел — int() всегда идёт К нулю, а не «вниз» в математическом смысле:

int_otricatelnoe.py
print(int(3.9))   # 3
print(int(-3.9))  # -3, а не -4

Преобразование текста в число

tekst_v_chislo.py
age_text = "10"
age = int(age_text)
print(age + 5)   # 15 — теперь это настоящее число
Не любой текст получится преобразовать
int("десять") вызовет ValueError — Python не умеет читать числа словами. Преобразовать можно только текст, который выглядит как число.

Разбор текста с указанием системы счисления

Мы уже видели это в разделе 4.3 — int() умеет читать текст не только в десятичной системе:

s_osnovaniem.py
print(int("1010", 2))  # 10
print(int("FF", 16))   # 255
Сборка строки из чисел: конкатенация → f-строка
Классический подход
age = 10
message = "Возраст: " + str(age) + " лет"
print(message)
# обязательно вручную оборачивать число в str()
Современный Python 3.14
age = 10
message = f"Возраст: {age} лет"
print(message)
# f-строка сама выполняет преобразование внутри {}
Что использовать сегодня: f-строки (f-strings), появившиеся в Python 3.6 и с тех пор ставшие стандартом. Они короче, меньше подвержены ошибкам (не нужно помнить о str()) и позволяют сразу писать выражения внутри фигурных скобок.
Практика: int(), float(), str() и парсинг с основанием
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →