Python は、08 または 09 以外の任意の数字の先行ゼロを受け入れることができるようです。たとえば、
a = 04
インタプリタで動作しますが、
a = 08
戻り値
SyntaxError: invalid token
OSXでpython 2.7.3を使用していますが、他の人はエラーを複製できました。何を与える?
Python は、08 または 09 以外の任意の数字の先行ゼロを受け入れることができるようです。たとえば、
a = 04
インタプリタで動作しますが、
a = 08
戻り値
SyntaxError: invalid token
OSXでpython 2.7.3を使用していますが、他の人はエラーを複製できました。何を与える?
先頭に 0 がある数値は 8 進数として解釈され、数字8
と桁9
が存在しません。
Python 3 ではさらに悪いことに、使用する数字に関係なく、先行ゼロは構文エラーです。「新しい 8 進リテラル」の下の Python 3.0 の新機能を参照してください。PEP 3127も。
数値を0で始めると、Pythonはそれを8進数と見なします。したがって、そうですが、8進数04は10進数04と同じですが、8進数08は存在しません(8進数は[0,7]の範囲にしか存在できないため)。
ここで見つかりました:Python:無効なトークン