<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

f-строки в Python: форматирование, подстановки и лучшие практики

f-строки в Python: форматирование, подстановки и лучшие практики

Если вы только начинаете или уже пишете на языке, умение эффективно использовать f-строки в Python быстро повышает читаемость кода. Это современный способ форматирования строк, появившийся в Python 3.6, который делает подстановки и форматирование интуитивными и быстрыми.

Что такое f-строки и как они работают

f-строка — это литерал строки с префиксом f, внутри которого можно вставлять выражения в фигурных скобках {}. Эти выражения вычисляются во время выполнения.

name = "Алиса"
age = 21
print(f"Привет, {name}! Тебе {age} года.")
# Привет, Алиса! Тебе 21 года.

Базовые подстановки и выражения

Внутри фигурных скобок можно писать не только имена переменных, но и любые выражения: вызовы функций, арифметику, тернарные операторы.

def tax(amount):
    return amount * 0.13

price = 799.9
print(f"С налогом: {price + tax(price):.2f} ₽")
print(f"Дорого? {'да' if price > 500 else 'нет'}")

Debug-печать: оператор =

Начиная с Python 3.8, можно быстро выводить имя и значение переменной через синтаксис {expr=} — удобно для отладки.

user = {"name": "Алиса", "score": 1400}
print(f"{user['name']=}, {user['score']=}")
# user['name']='Алиса', user['score']=1400

Форматирование чисел: точность, разделители, знаки

После выражения можно указать формат-спецификатор через двоеточие :. Это те же спецификаторы, что и у метода format.

x = 12345.6789
print(f"Два знака после запятой: {x:.2f}")           # 12345.68
print(f"Тысячный разделитель: {x:,.2f}")            # 12,345.68 (в RU-локали может отличаться)
print(f"Фиксированная ширина: |{x:10.2f}|")         # |  12345.68|
print(f"Выравнивание влево:  |{x:<10.2f}|")         # |12345.68  |
print(f"Выравнивание по центру: |{x:^10.2f}|")     # | 12345.68 |
print(f"Знак всегда: {x:+.2f}, {-x:+.2f}")          # +12345.68, -12345.68
print(f"Проценты: {(0.1234):.1%}")                 # 12.3%

Выравнивание и наполнение

Можно задавать символ заполнения и направление выравнивания. Формат: {значение:заполнительвыравниваниеширина}.

item = "CPU"
print(f"|{item:-^10}|")  # |---CPU----|
print(f"|{item:.>10}|")  # |.......CPU|
print(f"|{item:<10}|")   # |CPU       |

Форматирование дат и времени

Объекты datetime поддерживают собственный формат через strftime-подобный синтаксис в f-строках.

from datetime import datetime
now = datetime(2025, 1, 15, 14, 30)
print(f"Сегодня {now:%d.%m.%Y}, время {now:%H:%M}")
# Сегодня 15.01.2025, время 14:30

Многострочные f-строки и переносы

Можно использовать тройные кавычки или склеивать строки.

name, total, ok = "Алиса", 10, True
msg = f"""
Пользователь: {name}
Количество: {total}
Статус: {ok}
"""
print(msg)

Словари, атрибуты и подсказки по синтаксису

Внутри фигурных скобок можно обращаться к атрибутам и индексам. Если внутри нужны кавычки, следите за экранированием или используйте разные типы кавычек.

user = {"name": "Алиса", "city": "Казань"}
# Разные кавычки упрощают запись:
print(f"{user['name']} из {user['city']}")

class Point:
    def __init__(self, x, y):
        self.x, self.y = x, y
p = Point(3, 7)
print(f"({p.x}, {p.y})")

Экранирование фигурных скобок

Чтобы вывести сами фигурные скобки, удвойте их: {{ и }}.

template = "Шаблон: {{значение}}"
print(f"{template}")  # Шаблон: {значение}

Производительность: f-строки быстрее

Часто f-строки быстрее старых способов форматирования.

import timeit
setup = "name='Алиса'; age=21"
print('f-string:', timeit.timeit("f'{name} {age}'", setup=setup, number=1_000_000))
print('format  :', timeit.timeit("'{} {}'.format(name, age)", setup=setup, number=1_000_000))
print('%      :', timeit.timeit("'%s %s' % (name, age)", setup=setup, number=1_000_000))

Типичные ошибки и подводные камни

  • Нельзя писать комментарии внутри {} и использовать символ обратной косой черты в выражении.
  • Следите за кавычками при доступе по ключу в словаре внутри {} — используйте разные кавычки или экранирование.
  • Не перегружайте f-строку сложной логикой: лучше вычисляйте заранее, а в строку подставляйте итог.
  • Функция в {} выполнится на каждый форматируемый вызов: избегайте тяжёлых вычислений внутри.
  • {expr=} доступно только в Python 3.8+.

Практические шаблоны

# 1) Читабельные отчёты
user, spent = "Алиса", 1234.5
print(f"Пользователь: {user}\nПотрачено: {spent:,.2f} ₽")

# 2) Колонки фиксированной ширины
rows = [("CPU", 85.2), ("RAM", 63.1), ("Disk", 91.7)]
for name, val in rows:
    print(f"{name:<6} | {val:6.2f}%")

# 3) Журналирование с дебаг-синтаксисом
query, limit = "select * from t", 100
print(f"{query=}, {limit=}")

Лучшие практики

  • Формат-спецификатор держите рядом с выражением: {total:,.2f} — нагляднее, чем отдельные вызовы format.
  • Для многострочных сообщений используйте тройные кавычки: так легче редактировать текст и переносы.
  • Подготовьте данные заранее: сложные вычисления вне строки, простые подстановки — внутри.
  • Старайтесь, чтобы одна f-строка передавала одну понятную мысль (логический блок).

Итог

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

Хотите системно прокачать Python с практикой и обратной связью? Загляните в пошаговый курс «Python с Нуля до Гуру» — начать учиться сейчас.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.