\ — управляющий символ в строковых литералах Python .
Например, если вы хотите поместить символ табуляции в строку, вы должны сделать:
>>> print("foo \t bar")
foo bar
Если вы хотите поместить литерал \ в строку, вы должны использовать \\:
>>> print("foo \\ bar")
foo \ bar
Или используйте «необработанную строку»:
>>> print(r"foo \ bar")
foo \ bar
Вы не можете просто поставить обратную косую черту в строковых литералах, когда захотите. Обратная косая черта недействительна, если за ней не следует одна из допустимых escape-последовательностей, а более новые версии Python выводят предупреждение об устаревании< /а>. Например, \A не является управляющей последовательностью:
$ python3.6 -Wd -c '"\A"'
<string>:1: DeprecationWarning: invalid escape sequence \A
Если ваша последовательность обратной косой черты случайно совпадает с одной из escape-последовательностей Python, но вы этого не хотели, это еще хуже.
Поэтому вы всегда должны использовать необработанные строки или \\.
Важно помнить, что строковый литерал остается строковым литералом, даже если эта строка предназначена для использования в качестве регулярного выражения. синтаксис регулярных выражений Python поддерживает множество специальных последовательностей, начинающихся с \. Например, \A соответствует началу строки. Но \A недействителен в строковом литерале Python! Это неверно:
my_regex = "\Afoo"
Вместо этого вы должны сделать это:
my_regex = r"\Afoo"
Строки документации — это еще одна вещь, о которой следует помнить: строки документации также являются строковыми литералами, и недопустимые последовательности \ также недействительны в строках документации! Используйте необработанные строки (r"""...""") для строк документации, если они содержат \.
14.09.2018
r"{}".format(my_variable)10.04.2019"\\."илиr"\."вместо"\.". Мне потребовалось время, чтобы понять. Ваш ответ помог. Спасибо. 21.03.2021