Использование f-строк для форматирования строк в Python

Раздел: Основы Python -> Форматирование строк

Основы f-строк

f-строки (f-strings) - это механизм форматирования строк, введённый в Python 3.6. Они позволяют встраивать выражения Python непосредственно в строковый литерал, предваряя строку символом f или F. Внутри фигурных скобок {} можно размещать переменные, арифметические операции, вызовы методов и любые другие корректные выражения.

name = 'Анна'
age = 30
result = f'Меня зовут {name}, мне {age} лет.'
print(result)

F строка python (f-строка в python)

Меня зовут Анна, мне 30 лет.

вывод данных в строку python (вывод данных в строку в python)

После двоеточия внутри фигурных скобок указываются спецификаторы формата:

  • :d - целое число
  • :.2f - число с двумя знаками после запятой
  • :>10 - выравнивание вправо на 10 символов
  • :^10 - выравнивание по центру
  • :,<....> - разделитель тысяч
  • :% - процентный формат

Пример с форматированием числа:

price = 1234.5678
formatted = f'Цена: {price:,.2f} руб.'
print(formatted)

Python format method (метод format для строк python)

Цена: 1,234.57 руб.

Python текст в несколько строк (создание многострочных строк в python)

Для экранирования фигурных скобок используются двойные скобки {{ и }}:

text = f'Фигурные скобки: {{ и }}'
print(text)

Python f name (f-строка с именем в python)

Фигурные скобки: { и }

как добавить пробел в python (добавление пробела в строку python)

f-строки могут быть многострочными (тройные кавычки) и поддерживают вложенные выражения:

a = 5
b = 10
msg = f'''
Сумма {a} и {b} равна {a + b}.
Произведение равно {a * b}.
'''
print(msg)

Python format named (форматирование с именованными аргументами в python)

Сумма 5 и 10 равна 15.
Произведение равно 50.

Типичные ошибки:

  • Пропуск префикса f - строка форматируется как обычная, фигурные скобки остаются в выводе.
  • Использование обратной косой черты внутри фигурных скобок - это приводит к синтаксической ошибке (например, f'{name\n}' недопустимо). Для перевода строки лучше использовать тройные кавычки.
  • Неправильный порядок скобок во вложенных выражениях.

Как вставить значение переменной в строку?

Достаточно поместить имя переменной в фигурные скобки:

city = 'Москва'
print(f'Я живу в городе {city}.')
Я живу в городе Москва.

Как отформатировать число с двумя знаками после запятой?

Используется спецификатор :.2f:

pi = 3.14159265
print(f'Число π приблизительно равно {pi:.2f}')
Число π приблизительно равно 3.14

Как выровнять текст по правому краю на 15 символов?

Добавляется символ > и ширина поля:

word = 'привет'
print(f'{word:>15}')
         привет

Как использовать f-строки с датами?

Объекты datetime поддерживают те же коды форматирования, что и strftime:

from datetime import datetime
now = datetime.now()
print(f'Сегодня {now:%d.%m.%Y}, время {now:%H:%M}')
Сегодня 28.03.2025, время 15:45

Как экранировать фигурные скобки в f-строке?

Повторение скобок {{ и }}:

value = 42
print(f'Значение в словаре: {{key: {value}}}')
Значение в словаре: {key: 42}

Как выполнить тернарное условие внутри f-строки?

Любое допустимое выражение, включая условное:

score = 85
print(f'Результат: {"сдал" if score >= 60 else "не сдал"}')
Результат: сдал

Как отформатировать процентное значение?

Спецификатор :% умножает число на 100 и добавляет знак процента:

ratio = 0.1234
print(f'Доля: {ratio:.1%}')
Доля: 12.3%

Ошибка при использовании слэша в выражении: f-строки не позволяют использовать обратную косую черту \ внутри фигурных скобок. Например, попытка записать f'{name}\n' вызовет SyntaxError. Решение - вынести перевод строки за скобки или использовать тройные кавычки.

Дополнительные примеры f-строк

1. Базовое использование с разными типами

Пример
name = 'Иван'
age = 25
height = 1.78
print(f'Имя: {name}, возраст: {age}, рост: {height:.2f} м')
Имя: Иван, возраст: 25, рост: 1.78 м

2. Форматирование чисел с разделителем тысяч и знаками

Пример
big_number = 1234567890
debt = -5000.5
print(f'Число: {big_number:,}')
print(f'Долг: {debt:+.2f}')
Число: 1,234,567,890
Долг: -5000.50

3. Научная нотация

Пример
sci = 0.0000123
print(f'В научной записи: {sci:.2e}')
В научной записи: 1.23e-05

4. Выравнивание с заполнителем

Пример
left = f'{"лево":<10}'
right = f'{"право":>10}'
center = f'{"центр":^10}'
fill = f'{"заполнено":*>10}'
print(left)
print(right)
print(center)
print(fill)
лево      
     право
  центр   
***заполнено

5. Работа со словарями (прямой доступ)

Пример
person = {'name': 'Мария', 'age': 28}
print(f'{person["name"]} - возраст {person["age"]}')
# Обратите внимание на кавычки внутри: можно использовать как '', так и ""
Мария - возраст 28

6. Вызов методов внутри f-строки

Пример
text = 'python'
print(f'Верхний регистр: {text.upper()}')
print(f'Длина строки: {len(text)}')
Верхний регистр: PYTHON
Длина строки: 6

7. Вложенные f-строки (f-строка внутри f-строки)

Пример
a = 5
b = 10
inner = f'{a} + {b}'
outer = f'Результат выражения {inner} равен {a + b}'
print(outer)
Результат выражения 5 + 10 равен 15

8. Использование конвертации !r, !s, !a

Пример
value = 'привет'
print(f'str: {value!s}')
print(f'repr: {value!r}')
print(f'ascii: {value!a}')
str: привет
repr: 'привет'
ascii: '\u043f\u0440\u0438\u0432\u0435\u0442'

9. Многострочная f-строка для SQL-запроса

Пример
table = 'users'
condition = 'age > 18'
query = f'''
SELECT *
FROM {table}
WHERE {condition}
ORDER BY name
'''
print(query)
SELECT *
FROM users
WHERE age > 18
ORDER BY name

10. f-строка с арифметикой внутри

Пример
x = 7
y = 3
print(f'Сумма: {x + y}, разность: {x - y}, произведение: {x * y}')
Сумма: 10, разность: 4, произведение: 21

f-строка в Python - comments

En
F строка python (python)