[Tutor] Puzzled again
Peter Otten
__peter__ at web.de
Wed Aug 3 19:11:59 CEST 2011
Richard D. Moores wrote:
> I wrote before that I had pasted the function (convertPath()) from my
> initial post into mycalc.py because I had accidentally deleted it from
> mycalc.py. And that there was no problem importing it from mycalc.
> Well, I was mistaken (for a reason too tedious to go into). There WAS
> a problem, the same one as before.
Dave was close, but Steven hit the nail: the string r"C:\Users\Dick\..." is
fine, but when you put it into the docstring it is not a raw string within
another string, it becomes just a sequence of characters that is part of the
outer string. As such \U marks the beginning of a special way to define a
unicode codepoint:
>>> "\U00000041"
'A'
As "sers\Dic", the eight characters following the \U in your docstring, are
not a valid hexadecimal number you get an error message.
The solution is standard procedure: escape the backslash or use a rawstring:
Wrong:
>>> """yadda r"C:\Users\Dick\..." yadda"""
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in
position 10-12: truncated \UXXXXXXXX escape
Correct:
>>> """yadda r"C:\\Users\Dick\..." yadda"""
'yadda r"C:\\Users\\Dick\\..." yadda'
Also correct:
>>> r"""yadda r"C:\Users\Dick\..." yadda"""
'yadda r"C:\\Users\\Dick\\..." yadda'
More information about the Tutor
mailing list