ホームページ > バックエンド開発 > Python チュートリアル > Python 2.x が先頭にゼロのある数値を 8 進数として解釈するのはなぜですか?

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

Patricia Arquette
リリース: 2024-11-26 12:08:09
オリジナル
610 人が閲覧しました

Why Does Python 2.x Interpret Numbers with Leading Zeros as Octal?

Python で先頭にある謎の "0" の数字を解読する

Python 2.7.3 に先頭にゼロが付いた小さな整数を入力すると、次のような予期しない結果が生じます:

>>> 011
9
>>> 0100
64
>>> 027
23
ログイン後にコピー

この癖これは、Python が先頭に「0」が付いた数値を解釈する方法に由来します。 Python 2.x では、これらの数値は 8 進数 (基数 8) の整数とみなされます。

8 進数の解明

8 進数体系では、各桁は次の累乗を表します。 8. 例:

  • 011 は 1 x を表します8¹ 1 x 8⁰ = 9
  • 0100 は 1 x 8² を表します 0 x 8¹ 0 x 8⁰ = 64
  • 027 は 2 x 8¹ を表します 7 x 8⁰ = 16 7 = 23

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 サイトの他の関連記事を参照してください。

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