때문에 \
그들은 유효한 이스케이프 시퀀스 경우에만 이스케이프 시퀀스를 시작합니다.
>>> '\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'