On Sat, 18 Apr 2009 11:45:09 -0700 (PDT), grocery_stocker wrote: > I'm just really not seeing how something like x63 and/or x61 gets > converted by 'print' to the corresponding chars in the following > output... ... >>>> print "\x63h\x61d" > chad >>>> > > Does print just do this magically?
Not only print does that: >>> a='\x63h\x61d' >>> a 'chad' >>> print a chad >>> import sys >>> sys.stdout.write(a) chad>>> eval(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'chad' is not defined The policy is described here: http://www.python.org/doc/2.4.4/ref/strings.html Unlike Standard C, all unrecognized escape sequences are left in the string unchanged, i.e., the backslash is left in the string. (This behavior is useful when debugging: if an escape sequence is mistyped, the resulting output is more easily recognized as broken.) So, as long as the escape sequence is recognized it is changed accordingly. -- Regards, Wojtek Walczak, http://tosh.pl/gminick/ -- http://mail.python.org/mailman/listinfo/python-list