Python が先頭にゼロのある数値を 8 進数として解釈するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-21 03:34:26
オリジナル
305 人が閲覧しました

Why Does Python Interpret Numbers with Leading Zeros as Octal?

先頭にゼロがある 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート