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中文网其他相关文章!