Что такое f-строки?
f-строки (formatted string literals) — это самый удобный способ вставки значений переменных в строку. Появились в Python 3.6 и стали стандартом для форматирования.
name = "Максим"
age = 25
print(f"Привет, {name}! Тебе {age} лет.")
# Привет, Максим! Тебе 25 лет.
Синтаксис: перед строкой ставится буква f, а переменные или выражения пишутся внутри фигурных скобок { }.
Сравнение способов форматирования
name = "Анна"
age = 30
# Старый способ (оператор %)
print("Привет, %s! Тебе %d лет." % (name, age))
# Метод .format()
print("Привет, {}! Тебе {} лет.".format(name, age))
# f-строка — самый современный и читаемый
print(f"Привет, {name}! Тебе {age} лет.")
💡 Совет: Рекомендация: всегда используйте f-строки для нового кода. Они быстрее и читаемее.
Выражения внутри f-строк
a = 10
b = 3
print(f"{a} + {b} = {a + b}") # 10 + 3 = 13
print(f"{a} / {b} = {a / b:.2f}") # 10 / 3 = 3.33
# Вызов функций внутри f-строк
name = "python"
print(f"{name.upper()} — это круто!") # PYTHON — это круто!
# Тернарный оператор
score = 85
print(f"Результат: {'Сдал' if score >= 60 else 'Не сдал'}")
Форматирование чисел
| Спецификация | Пример | Результат |
|---|---|---|
:.2f | f"{3.14159:.2f}" | 3.14 |
:.0f | f"{3.99:.0f}" | 4 (округляет!) |
:.1% | f"{0.85:.1%}" | 85.0% |
:, | f"{1000000:,}" | 1,000,000 |
Выравнивание текста
# Выравнивание по правому краю (ширина 10)
print(f"|{25:>10}|") # | 25|
# По левому краю
print(f"|{'текст':<10}|") # |текст |
# По центру
print(f"|{'Python':^10}|") # | Python |
# Заполнение символом
print(f"|{25:0>5}|") # |00025|
print(f"|{'abc':-^7}|") # |--abc--|
Практические примеры
# Таблица умножения
for i in range(1, 5):
for j in range(1, 5):
print(f"{i} × {j} = {i*j:>2}", end=" ")
print()
# Отображение цен
products = {"apple": 79.90, "milk": 120.00, "bread": 55.50}
for name, price in products.items():
print(f"{name:.<20} {price:>8.2f} ₽")
# Вывод списка с нумерацией
fruits = ["яблоко", "банан", "вишня"]
for i, fruit in enumerate(fruits, 1):
print(f"{i}. {fruit}")
Debug-режим: {x=}
x = 42
y = 3.14
print(f"{x=}") # x=42
print(f"{x=} {y=}") # x=42 y=3.14
print(f"{x+y=}") # x+y=45.14
# Очень удобно для отладки:
name = "Максим"
print(f"{name=}") # name='Максим'