On Wed, Nov 28, 2012 at 01:01:12AM +0000, JiangShan wrote: > Hi everyone, > > I am studying the python 3 and I am confused about the raw > string. Why does the python interpreter do not escape the > single backslash before the quotes even I add a "r" before the > string. The following is an example: > > >>> print(r"\") > > SyntaxError: EOL while scanning string literal > >>> print(r"\\") > \\ > >>>
A very good question! Note that this is not just in Python 3, the same thing applies to all versions of Python, and even other implementations like IronPython: steve@runes:~$ ipy IronPython 2.6 Beta 2 DEBUG (2.6.0.20) on .NET 2.0.50727.1433 Type "help", "copyright", "credits" or "license" for more information. >>> s = r"\" File "<stdin>", line 1 s = r"\" ^ SyntaxError: EOL while scanning single-quoted string Unfortunately, there is no good answer except "that's the way it is, because that's the way the string parser is designed to work". It is a documented limitation of raw strings: http://docs.python.org/2/reference/lexical_analysis.html#string-literals and it has been reported as a bug but closed as "Invalid": http://bugs.python.org/issue1271 -- Steven _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor