[Tutor] Interactive escape sequences
Dave Angel
davea at davea.name
Tue Jan 14 11:11:04 CET 2014
Alan Gauld <alan.gauld at btinternet.com> Wrote in message:
> On 14/01/14 07:42, Christian Alexander wrote:
>
>> Why does the interactive prompt not recognize escape sequences in
>> strings? It only works correctly if I use the print function in python 3.
>>
>> >>> "Hello\nWorld"
>> "Hello\nWorld"
>
> That depends on how you define "correctly"...
>
> When you evaluate an expression at the Python prompt Python prints the
> repr() of the value. For strings that includes the quotes and the \n
> characters and any other special characters it finds. The print
> function on the other hand prints the str() of the value and that
> interprets the quotes etc out
>
> In general repr() is more useful for debugging since it shows any
> 'hidden' whitespace characters. repr() by convention should return a
> value that can be evaluated and assigned to a variable, although it
> doesn't always do that for miore complex types.
>
I'd like to elaborate, Christian. The escape sequence in the
literal string has been processed by the interpreter in either
case by the time the string object has been created. What makes
the repr logic important is that it adds the quotation marks, and
turns unprintables into escape sequences. It has absolutely no
access to the literal you started with.
See for example
"""this
one"""
or
"\x41"
--
DaveA
----Android NewsGroup Reader----
http://www.piaohong.tk/newsgroup
More information about the Tutor
mailing list