Backslash (символ обратной косой черты) в Python
В этом руководстве вы узнаете о символе обратной косой черты (Backslash) в Python как о части специальных последовательностей и об экранировании символов в строке.
- Что такое обратный слэш в Python?
- Обратная косая черта в f-строках
- Использование в необработанных строках
Что такое обратный слэш в Python?
В Python обратная косая черта(\) является специальным символом. Если вы используете обратную косую черту перед другим символом, это меняет значение этого символа.
Например, t — буквенный символ. Но если вы используете обратный слэш перед буквой t, он станет символом табуляции(\t).
Обычно обратная косая черта преследует две основные цели:
- Во-первых, символ обратного слэша является частью специальных последовательностей символов, таких как символ табуляции \t или символ новой строки \n.
В следующем примере печатается строка, содержащая символ новой строки:
print('Hello,\n World')
Выход:
Hello, World
\n — это один символ, а не два. Например:
s = '\n' print(len(s)) # 1
- Во-вторых, обратная косая черта(\) экранирует другие специальные символы. Например, если у вас есть строка, содержащая одинарную кавычку внутри строки с одинарными кавычками, как в следующей строке, вам нужно использовать обратную косую черту, чтобы экранировать символ одинарной кавычки:
s = '"Python\'s awesome" She said' print(s)
Выход:
"Python's awesome" She said
Обратная косая черта в f-строках
PEP-498 указывает, что f-строка не может содержать символ обратной косой черты как часть выражения внутри фигурных скобок {}.
Следующий пример приведет к ошибке:
colors = ['red','green','blue'] s = f'The RGB colors are:\n {'\n'.join(colors)}' print(s)
Ошибка:
SyntaxError: f-string expression part cannot include a backslash
Чтобы это исправить, вам нужно соединить строки в списке цветов, прежде чем помещать их в фигурные скобки:
colors = ['red','green','blue'] rgb = '\n'.join(colors) s = f"The RGB colors are:\n{rgb}" print(s)
Выход:
The RGB colors are: red green blue
Использование в необработанных строках
Необработанные строки рассматривают символ обратной косой черты(\) как литеральный символ.
Пример:
s = r'\n' print(s)
Выход:
\n