首页  >  文章  >  后端开发  >  Python 2 和 Python 3 负整数除法有什么区别?

Python 2 和 Python 3 负整数除法有什么区别?

Barbara Streisand
Barbara Streisand原创
2024-10-24 10:45:02205浏览

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