ホームページ >バックエンド開発 >Python チュートリアル >Python 整数の先頭にゼロがあると予期しない動作が発生するのはなぜですか?

Python 整数の先頭にゼロがあると予期しない動作が発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-28 18:04:11436ブラウズ

Why Do Leading Zeros in Python Integers Result in Unexpected Behavior?

Python 整数の接頭辞ゼロについて

Python では、先頭にゼロを付けて数値を入力すると、通常の整数とは異なる動作をします。これは、これらの数値が 8 進数 (base-8) として解釈されるためです。

8 進数は、0 から 7 までの範囲の数字で構成されます。Python は、0 で始まる数値を見つけると、自動的にそれを 8 進数に変換します。数値が予期した 10 進表現と異なるため、予期しない結果が生じる可能性があります。

Python 2 (旧形式) の例

  • 011:この数値は、基数で 1 8¹ 1 8⁰ = 9 に変換されます。 10.
  • 0100: この数値は 1 8² 0 8¹ 0 * 8⁰ = 64 に変換されます。 10.
  • 027: この数値は 2 8¹ に変換されます。 7 8⁰ = 23 インチBase 10.

Python 3 (新しい形式)

Python 3 では、8 進定数を示すために接頭辞 '0o' を使用する必要があります。これは、8 進数と 10 進数をより明確に区別するのに役立ちます。

  • 0o11: この数値は、10 進数の 1 8¹ 1 8⁰ = 9 に変換されます。
  • 0o100:この数値は 1 8² 0 に変換されます。 8¹ 0 * 8⁰ = 64 (進数 10)。
  • 0o27: この数値は、2 8¹ 7 8⁰ = 23 (進数 10) に変換されます。

潜在的なエラーを回避するには、この動作を理解することが重要です。コード。数値が正しく入力されていることを常に確認し、Python で 8 進数を表すためのさまざまな形式に注意してください。

以上がPython 整数の先頭にゼロがあると予期しない動作が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。