Как форматировать строки в Python (f-строки и формат)
Изучите лучшие методы форматирования строк в Python. Сравните современные f-строки, format() и процентное форматирование с примерами кода.
Обзор
Форматирование строк — ежедневная необходимость для отображения переменных внутри сообщений, вывода журналов, печати отладочных данных консоли и создания веб-страниц. За прошедшие годы Python значительно усовершенствовал форматирование строк, предлагая множество вариантов безопасного и разборчивого создания динамических текстовых представлений.
В современном Python (3.6+) стандартным и наиболее популярным подходом является форматирование с помощью f-строк (форматированные строковые литералы). Добавляя к строке префикс `f` или `F`, вы можете вставлять выражения или переменные Python непосредственно в фигурные скобки `{}`. Эти выражения оцениваются во время выполнения, что делает f-строки быстрее и значительно более читабельными, чем старые методы форматирования.
В старых базах кода Python может использоваться метод `.format()` или процентное форматирование `%`. Несмотря на то, что они все еще поддерживаются, их использование в новом коде обычно не рекомендуется. f-строки также поддерживают мощные встроенные спецификаторы формата, позволяющие контролировать точность десятичных чисел (например, `{value:.2f}`), выравнивать текст или форматировать даты непосредственно внутри строковых переменных.
Код и вывод выполнения
Этот скрипт демонстрирует печать динамических текстовых блоков с использованием f-строк, форматирование чисел с плавающей запятой и использование .format().
name = "Alice"
age = 30
pi = 3.14159
# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)
# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)
# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.Пошаговая реализация
- Добавьте к строковому литералу префикс символа f (например, f'Hello...').
- Вставляйте переменные или выражения непосредственно внутри фигурных скобок {} внутри строки.
- Используйте спецификации формата, такие как :.2f, для обработки десятичного форматирования внутри фигурных скобок.
Часто задаваемые вопросы
Являются ли f-строки быстрее, чем форматирование .format() и %?
Да, f-строки оцениваются во время выполнения как оптимизированные операции с байт-кодом, что делает их быстрее, чем операторы .format() и %.
Могу ли я запускать функции или оценивать выражения внутри f-строк?
Да, любое допустимое выражение Python (включая математические операции, вызовы функций и поиск по словарю) можно оценить внутри фигурных скобок.
Связанные темы
Узнайте, как получить текущую дату и время в Python с помощью модуля datetime. Форматируйте даты в строки с помощью strftime и обрабатывайте часовые пояса.
Как преобразовать строку в Int в PythonУзнайте, как преобразовать строку в целое число в Python с помощью функции int(). Безопасно обрабатывайте ошибки и преобразуйте числа из двоичного, восьмеричного или шестнадцатеричного формата.
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Строки Python
Мастер манипуляций со строками в Python. Изучите строковые методы, методы нарезки, конкатенации и форматирования на понятных примерах исполняемого кода.
Шпаргалка по форматированию DateTime в Python
Узнайте, как анализировать и форматировать дату и время в Python, используя datetime, strftime и strptime.
Python против JavaScript: какой язык программирования лучше?
Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.