Escapeism

Kay Schluehr kay.schluehr at gmx.net
Sat Sep 30 19:02:07 CEST 2006


Sybren Stuvel wrote:
> Kay Schluehr enlightened us with:
> > Usually I struggle a short while with \ and either succeed or give up.
> > Today I'm in a different mood and don't give up. So here is my
> > question:
> >
> > You have an unknown character string c such as '\n' , '\a' , '\7' etc.
> >
> > How do you echo them using print?
> >
> > print_str( c ) prints representation '\a' to stdout for c = '\a'
> > print_str( c ) prints representation '\n' for c = '\n'
> > ...
> >
> > It is required that not a beep or a linebreak shall be printed.
>
> try "print repr(c)".

This yields the hexadecimal representation of the ASCII character and
does not simply echo the keystrokes '\' and 'a' for '\a' ignoring the
escape semantics. One way to achieve this naturally is by prefixing
'\a' with r where r'\a' indicates a "raw" string. But unfortunately
"rawrification" applies only to string literals and not to string
objects ( such as c ). I consider creating a table consisting of pairs
{'\0': r'\0','\1': r'\1',...}  i.e. a handcrafted mapping but maybe
I've overlooked some simple function or trick that does the same for
me.

Kay




More information about the Python-list mailing list