Глава 8 · Играем с буквами и словами

Форматирование строк

Три поколения одного и того же инструмента — вставить значение внутрь текста.

Мы уже пользовались f-строками начиная с главы 4 — теперь разберём форматирование строк полностью, включая исторический контекст: в старом коде вы неизбежно встретите и другие способы.

Форматирование строк: % → .format() → f-строки
Классический подход (% и .format())
name = "Cartesian"
age = 5

# оператор % — самый старый способ
print("Привет, %s! Тебе %d лет." % (name, age))

# .format() — более новый, но всё ещё многословный
print("Привет, {}! Тебе {} лет.".format(name, age))
Современный Python 3.14 (f-строки)
name = "Cartesian"
age = 5

# f-строка — значения прямо внутри {}
print(f"Привет, {name}! Тебе {age} лет.")

# работают и выражения, не только переменные:
print(f"Через год будет {age + 1}.")
Что использовать сегодня: f-строки — они появились в Python 3.6 и с тех пор являются стандартом. Оператор % — самый старый способ, доставшийся от языка Си, всё ещё встречается в старом коде. .format() — промежуточный шаг между ними. f-строки читаются лучше всего: значение видно прямо там, где оно будет подставлено, и можно писать любые выражения, а не только имена переменных.

Форматирование чисел внутри f-строк

Внутри фигурных скобок f-строки можно не только подставить значение, но и указать, как именно его отформатировать — например, сколько знаков после запятой:

format_specifikatory.py
pi = 3.14159265
print(f"Пи округлённо: {pi:.2f}")   # Пи округлённо: 3.14
print(f"{1234567:,}")               # 1,234,567 — разделитель тысяч
Практика в Jupyter Notebook
08-06-formatirovanie.ipynb · %, .format() и f-строки на практике
Открыть ноутбук →