0

このエラー メッセージはどういう意味ですか?

SyntaxError: (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.
"""
4

4 に答える 4

1

これは、デコードしているデータの \uXXXX エスケープ シーケンスが無効であることを意味します。具体的には、短すぎることを意味します。ほとんどの場合、テキストのどこかに「\U」というテキストがありますが、その後に Unicode 文字番号が続きません。

于 2013-05-26T16:06:50.167 に答える
1

Python 3 文字列は Unicode であるため、'\u' エスケープをデコードしようとします。そのため、文字列をコメントとして使用しようとしても、それをデコードしようとします。

次のような実際のコメント:

#\usepackage{mathpazo}

デコードされません。

sのクラスにあることに気付いた場合SyntaxError、つまり「到達不能コード」であってもフラグが立てられます。

于 2013-05-26T17:10:33.067 に答える
1

「問題のあるコード」は技術的にはコメントではなく、バイトコードのコンパイル中に評価される複数行の文字列であることに注意してください。

ソース ファイル内の場所によっては、最終的に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
于 2013-05-26T17:35:55.820 に答える