为了账号安全,请及时绑定邮箱和手机立即绑定

Unicode解码字节错误(Python)

Unicode解码字节错误(Python)

慕无忌1623718 2021-03-20 15:11:09
此错误消息是什么意思?语法错误:(unicode错误)“ unicodeescape”编解码器无法解码位置123-125中的字节:被截断的\ uXXXX转义我在注释的某个位置报告了此错误,该注释仅包含非Unicode字符。有问题的代码如下:""" loads Font combinations from a file## The font combinations are saved in the format:% -> Palatino, Helvetica, Courier\usepackage{mathpazo}                 %% --- Palatino (incl math)\usepackage[scaled=.95]{helvet}       %% --- Helvetica (Arial)\usepackage{courier}                  %% --- Courier\renewcommand{\fontdesc}{Palatino, Arial, Courier}% <-------------------## with "% ->" indicating the start of a new group# and "% <" indicating the end."""
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

值得注意的是,“问题代码”在技术上不是注释,而是多行字符串,它将在字节码编译期间进行评估。


根据其在源文件中的位置,它可能以docstring结尾,因此它在语法上必须有效。


例如...


>>> def myfunc():

...     """This is a docstring."""

...     pass

>>> myfunc.__doc__

'This is a docstring.'

>>> help(myfunc)

Help on function myfunc in module __main__:


myfunc()

    This is a docstring.

Python中没有真正的多行注释定界符,因此,如果您不希望对它进行评估,请使用多个单行注释...


# This is my comment line 1

# ...line 2

# etc.

def myfunc():

    pass


查看完整回答
反对 回复 2021-03-27
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

正如其他人所说的那样,它试图解析\usepackage为Unicode转义,但由于无效而失败。解决此问题的方法是逃避反斜杠:

"""\\usepackage""

或改为使用原始字符串:

r"""\usepackage"""

涵盖文档字符串约定的PEP 257建议使用后者。


查看完整回答
反对 回复 2021-03-27
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

这意味着您正在解码的数据中的\ uXXXX转义序列无效。具体来说,这意味着要短。您很可能在文本中的某处有文本“ \ U”,但后面没有Unicode字符编号。


查看完整回答
反对 回复 2021-03-27
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信