Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shouldn't r'\' be a valid string value in python? [duplicate]

Possible Duplicate:
why can’t I end a raw string with a \

Given r'\\' is equivalent to '\\\\', why r'\' isn't equivalent to '\\'?

What I got on my python3.2 was

print(r'\')
  File "<stdin>", line 1
    print(r'\')
              ^
SyntaxError: EOL while scanning string literal
like image 468
updogliu Avatar asked Dec 06 '25 09:12

updogliu


1 Answers

You cannot have a backslash as the last character in a raw string unless it is part of an even number of backslashes; it escapes the closing quote.

Compare this to:

>>> r'\ '
'\\ '

From the string literal documentation:

When an 'r' or 'R' prefix is present, a character following a backslash is included in the string without change, and all backslashes are left in the string. For example, the string literal r"\n" consists of two characters: a backslash and a lowercase 'n'. 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).

like image 64
Martijn Pieters Avatar answered Dec 08 '25 23:12

Martijn Pieters



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!