先頭にゼロがある Python の奇妙な動作
Python を使用する場合、0 で始まる小さな整数を入力すると、予期しない結果が発生することがあります。この異常は、8 進数として知られるこれらの数値を基数 8 で解釈する言語の能力に起因します。
具体的には、Python インタプリタはこれらの先頭のゼロを 8 進数表現として扱います。たとえば、整数 011 は次のように解釈されます:
011 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
これは、Python インタープリタに「011」と入力すると値 9 が返される理由を説明しています。
ただし、この動作はバージョンによって異なります。 -特定の。 Python 3 では、「0o」接頭辞を使用して 8 進定数を明示的に示す必要があります。例:
0o11 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
Python 2.6 以降のバージョンでは、古い形式 (先頭の 0) と新しい形式 (0o プレフィックス) の両方がサポートされています。
要約すると、Python の先頭のゼロは、 8 進数。 Python 2 では、これらの数値は先頭のゼロのみを使用して表すことができますが、Python 3 では「0o」接頭辞が必要です。
以上がPython が先頭にゼロのある数値を 8 進数として解釈するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。