Использование f-строк для форматирования строк в 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