首頁  >  文章  >  後端開發  >  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 使用整數除法,以「/」表示,結果為整數商。除負整數時,商會向更負的值捨去(向下除法)。這意味著 8/-7 被截斷為 -2,即使實際值更接近 -1.143。

重溫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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn