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

Eric S. Raymond esr@thyrsus.com
Mon, 15 Jan 2001 18:15:50 -0500

Ka-Ping Yee <ping@lfw.org>:
> 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.

Works for me.  I'd add \v, \b and \a to cover the whole ANSI C 
standard escape set (hmmm...am I missing any?)
		<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>

Live free or die; death is not the worst of evils.
	-- General George Stark.