Kay Schluehr wrote: > 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. > No, you've overlooked the fact that if you print the string containing the two characters "backslash" and "lower case a" then it will print exactly those two characters. See:
In [30]: c = "\\a" In [31]: len(c) Out[31]: 2 In [32]: print c \a regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://holdenweb.blogspot.com Recent Ramblings http://del.icio.us/steve.holden -- http://mail.python.org/mailman/listinfo/python-list