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