← Все вопросы

Что такое f-строки и чем они лучше старого форматирования через % или .format()?

Задан 2 месяца назад29 просмотров1 ответ
0

Напишите пример с f-строкой. Объясните, как вставлять в нее переменные и как выполнять вычисления прямо внутри фигурных скобок.

1 ответ

2

f-строка — это строка с префиксом f, в которую прямо в фигурных скобках вставляются переменные и любые выражения:

name, score = 'Ника', 87
print(f'{name} набрала {score} баллов')          # переменные
print(f'до сотни не хватило {100 - score}')      # вычисление на месте
print(f'средний за три теста: {score / 3:.2f}')  # формат: два знака после точки
print(f'{score=}')                               # отладка: напечатает score=87

После двоеточия идёт формат: :.2f — знаки после запятой, :>10 — выравнивание по ширине, :, — разделители тысяч.

Чем лучше старых способов: подстановка видна на месте, а не через позицию в списке аргументов. В '%s набрал %d' % (name, score) легко перепутать порядок или тип, .format() многословный. f-строки короче, быстрее и читаются без прыжков глазами. Единственное место, где %-стиль до сих пор уместен — логирование: log.info('user %s', user_id), там подстановку откладывает сам логгер.

Ваш ответ

, чтобы ответить на вопрос.