Python で先頭にある謎の "0" の数字を解読する
Python 2.7.3 に先頭にゼロが付いた小さな整数を入力すると、次のような予期しない結果が生じます:
>>> 011 9 >>> 0100 64 >>> 027 23
この癖これは、Python が先頭に「0」が付いた数値を解釈する方法に由来します。 Python 2.x では、これらの数値は 8 進数 (基数 8) の整数とみなされます。
8 進数の解明
8 進数体系では、各桁は次の累乗を表します。 8. 例:
Python 3 の最新のアプローチ
Python 2.7.3 とは異なり、Python 3.0 は先頭に「0」が付いた数値を 8 進整数として認識せず、代わりにエラー。 Python 3 で 8 進数を表すには、「0o」接頭辞を使用する必要があります (例:
>>> 0o11 9 >>> 0o100 64 >>> 0o27 23
Python 2.x のレガシー サポート
Python 2)。 x バージョン >= 2.6 は、古い形式 (先頭の "0") と新しい形式 (先頭の "0o") の両方をサポートします。 8 進数の場合、下位互換性を提供します。
以上がPython 2.x が先頭にゼロのある数値を 8 進数として解釈するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。