ホームページ  >  記事  >  バックエンド開発  >  Python 2 と Python 3 の負の整数の除算の違いは何ですか?

Python 2 と Python 3 の負の整数の除算の違いは何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 10:45:02198ブラウズ

What's the Difference in Negative Integer Division between Python 2 and Python 3?

Python でのトリッキーな負の整数の除算

アプリケーションの作業中に、整数の除算の驚くべき結果に疑問が生じました。 8 を -7 で割ると、結果は -2 (整数値) になります。この現象を理解するために、整数の除算の複雑さを掘り下げてみましょう。

整数の除算と真の除算

Python 2 は、「/」で示される整数の除算を使用します。これは整数の商になります。負の整数を除算する場合、商はより負の値に向かって丸められます (切り捨て)。これは、実際の値が -1.143 に近い場合でも、8/-7 が -2 に切り捨てられることを意味します。

Python 3 の再考

この曖昧さを避けるには、次のようにします。 Python 3 では真の除算が導入されており、両方のオペランドが整数でない限り、結果は常に浮動小数点数になります。これは数学的な除算と一致しており、オペランドを手動で浮動小数点に変換する必要がなくなります。したがって、Python 3 の 8/-7 は、正しく -1.143 と評価されます。

Python 3 の整数除算

Python 3 で整数除算がまだ必要な場合は、 // 演算子を使用することもできます。 Python 2 の整数除算と同様に、商を負の無限大に向かって丸めます。

歴史的コンテキスト

Python 2 の整数除算の動作は、歴史的なプログラミング言語の影響を受けました。そして数学的規範を反映していません。 Python 3 では、ほとんどの開発者の期待に沿って、真の分割を導入することでこの問題に対処しました。

追加リソース

このトピックの詳細については、Python の機能強化を参照してください。除算演算子の変更に関する提案 238 (PEP 238):

[PEP 238 -- 除算演算子の変更](https://www.python.org/dev/peps/pep-0238/) )

以上がPython 2 と Python 3 の負の整数の除算の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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