Why can't Python's raw string literals end with a single backslash?

后端 未结 12 1196
后悔当初
后悔当初 2020-11-22 07:37

Technically, any odd number of backslashes, as described in the documentation.

>>> r\'\\\'
  File \"\", line 1
    r\'\\\'
       ^
Syn         


        
12条回答
  •  忘了有多久
    2020-11-22 07:59

    The reason is explained in the part of that section which I highlighted in bold:

    String quotes can be escaped with a backslash, but the backslash remains in the string; for example, r"\"" is a valid string literal consisting of two characters: a backslash and a double quote; r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes). Specifically, a raw string cannot end in a single backslash (since the backslash would escape the following quote character). Note also that a single backslash followed by a newline is interpreted as those two characters as part of the string, not as a line continuation.

    So raw strings are not 100% raw, there is still some rudimentary backslash-processing.

提交回复
热议问题