On 14 September 2010 11:09, James Mills <prolo...@shortcircuit.net.au>wrote:
> $ python > Python 2.6.5 (r265:79063, Jun 13 2010, 14:03:16) > [GCC 4.4.4 (CRUX)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> s = "foo\"bar'" > >>> s > 'foo"bar\'' > I'd like to point something out here. Typing "s" as James showed here at the prompt outputs a version of the string that Python will understand if fed again, consequently it's encoded to do the same escaping of characters as you would have to do if you put that expression into your python source yourself. If however you entered: print s ... then Python would've print the value of s as it really is, withou any escape characters or anything else, e.g.: >>> print s foo"bar' So, even though you see a \' in the output posted by James above, the \ that was output by Python isn't actually part of the string (e.g. it's not really there as such), it was only output that way by Python to disambiguate the value of the string. So, at the risk of belaboring this point to death, if you do: s = '\'\'\'' then the contents of the string s in memory is ''' The string does not contain the slashes. The slashes are only there to help you make Python understand that the quotes must not be interpreted as the end of the string, but rather as part of the string. You could get the exact same result by doing: s = "'''" Here there's no ambiguity and consequently no need for slashes since the string is delineated by double quotes and not single quotes. Hope that helps. Walter
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor