Оскільки \
розпочинати екранні послідовності слід лише тоді, коли вони є дійсними послідовностями екранування.
>>> '\n'
'\n'
>>> r'\n'
'\\n'
>>> print '\n'
>>> print r'\n'
\n
>>> '\s'
'\\s'
>>> r'\s'
'\\s'
>>> print '\s'
\s
>>> print r'\s'
\s
Якщо немає префікса 'r' або 'R', послідовності екранування в рядках інтерпретуються відповідно до правил, подібних до тих, що використовуються стандартом C. Розпізнаними послідовностями екранування є:
Escape Sequence Meaning Notes
\newline Ignored
\\ Backslash (\)
\' Single quote (')
\" Double quote (")
\a ASCII Bell (BEL)
\b ASCII Backspace (BS)
\f ASCII Formfeed (FF)
\n ASCII Linefeed (LF)
\N{name} Character named name in the Unicode database (Unicode only)
\r ASCII Carriage Return (CR)
\t ASCII Horizontal Tab (TAB)
\uxxxx Character with 16-bit hex value xxxx (Unicode only)
\Uxxxxxxxx Character with 32-bit hex value xxxxxxxx (Unicode only)
\v ASCII Vertical Tab (VT)
\ooo Character with octal value ooo
\xhh Character with hex value hh
Ніколи не покладайтесь на необроблені рядки для літералів шляху, оскільки необроблені рядки мають досить своєрідну внутрішню роботу, яка, як відомо, покусала людей у дупу:
Коли присутній префікс "r" або "R", символ, що стоїть за зворотною рискою рискою, включається в рядок без змін, а всі зворотні скісні риски залишаються в рядку. Наприклад, рядковий літерал r"\n"
складається з двох символів: зворотної косої риски та малої літери "n". Рядкові лапки можна уникнути зворотною рискою рискою, але зворотна риска залишається в рядку; наприклад, r"\""
є дійсним рядковим літералом, що складається з двох символів: зворотної косої риски та подвійної лапки; r"\"
не є дійсним літеральним рядком (навіть необроблений рядок не може закінчуватися непарною кількістю зворотних скісних рисок). Зокрема, необроблений рядок не може закінчуватися однією зворотною косою рисою (оскільки зворотна коса риса буде уникати наступного символу лапки). Зауважте також, що одинарна коса коса риска, після якої йде новий рядок, інтерпретується як ці два символи як частина рядка,
Щоб краще проілюструвати цей останній пункт:
>>> r'\'
SyntaxError: EOL while scanning string literal
>>> r'\''
"\\'"
>>> '\'
SyntaxError: EOL while scanning string literal
>>> '\''
"'"
>>>
>>> r'\\'
'\\\\'
>>> '\\'
'\\'
>>> print r'\\'
\\
>>> print r'\'
SyntaxError: EOL while scanning string literal
>>> print '\\'
\
'\s'
(подібнеr'\s'
) також представляється як'\\s'
, через те, що'\s'
не є розпізнаною послідовністю виходу.