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

Finn Bock bckfnn@worldonline.dk
Tue, 16 Jan 2001 10:52:10 GMT


>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.

I like it, because it removes yet another difference between Python and
Jython. Jython happens to handle these chars specially: \n, \t, \b, \f
and \r.