[Python-Dev] Strings: '\012' -> '\n'

Ka-Ping Yee ping@lfw.org
Mon, 15 Jan 2001 14:35:47 -0800 (PST)


I don't know whether this is going to be obvious or controversial,
but here goes.  Most of the time we're used to seeing a newline as
'\n', not as '\012', and newlines are typed in as '\n'.

A newcomer to Python is likely to do

    >>> 'hello\n'
    'hello\012'

and ask "what's \012?" -- whereupon one has to explain that it's an
octal escape, that 012 in octal equals 10, and that chr(10) is
newline, which is the same as '\n'.  You're bound to run into this,
and you'll see \012 a lot, because \n is such a common character.
Aside from being slightly more frightening, '\012' also takes up
twice as many characters as necessary.

So... i'm submitting a patch that causes the three most common
special whitespace characters, '\n', '\r', and '\t', to appear in
their natural form rather than as octal escapes when strings are
printed and repr()ed.

Mm?


-- ?!ng