07 Июл 2023
1 мин
2969

Как экранировать фигурные скобки в строках при использовании .format или f-string в Python

Очень часто в Python, при работе со строками, возникает ситуация, когда необходимо вставить в строку зарезервированные символы, такие как фигурные скобки

Содержание

Очень часто в Python, при работе со строками, возникает ситуация, когда необходимо вставить в строку зарезервированные символы, такие как фигурные скобки {}. Это может стать проблемой, так как фигурные скобки в Python используются для форматирования строк.

Например, стоит задача вывести строку, которая содержит фигурные скобки и дополняется некоторыми переменными, что выглядит следующим образом:

print(" {Hello} {0} ".format(42))

Ожидается, что на выходе будет следующая строка:

{Hello} 42

Однако вместо этого возникает ошибка, так как Python пытается найти значение для вторых фигурных скобок {0} и не находит его.

Решение проблемы

Для решения этой проблемы следует использовать двойные фигурные скобки {{}} для экранирования. В этом случае Python поймет, что эти скобки не используются для форматирования строки, а являются частью самой строки.

Правильный пример выглядит так:

print(" {{Hello}} {0} ".format(42))

Теперь Python интерпретирует первую пару фигурных скобок как литерал и вставляет значение 42 во вторую пару скобок, что дает ожидаемый результат:

{Hello} 42

Также стоит отметить, что этот подход работает и с f-string в Python. Пример:

num = 42
print(f" {{Hello}} {num} ")

В этом случае на выходе также получим строку:

{Hello} 42

Содержание

Добавить комментарий

Определи профессию по рисунку