Python 3 中的整数除法 - 带有负数的奇怪结果[重复]

2024-02-17

我是Python新手,现在正在学习运算符。 我明白:

  • The /运算符用于floating point division and
  • // for integer division.

Example:

7//3 = 2

And 7//-3=-3。为什么是答案-3?

我被困在这里了。


// is not integer分工,但是floor分配:

7/-3  -> -2.33333...
7//-3 -> floor(7/-3) -> floor(-2.33333...) -> -3

PEP 238 https://www.python.org/dev/peps/pep-0238/ on 更改分部运算符:

The //接线员将可以根据要求floor划分明确。

也可以看看为什么Python有整数除法层 http://python-history.blogspot.com.by/2010/08/why-pythons-integer-division-floors.html(谢谢@尤金y https://stackoverflow.com/users/244297/eugene-y) - 基本上7//-3 is -7//3,所以你希望能够写:

-7 = 3 * q + r

With q一个整数(负数、正数或空)和r一个整数使得0 <= r < 3。这仅适用于q = -3:

-7 = 3 * (-3) + 2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 3 中的整数除法 - 带有负数的奇怪结果[重复] 的相关文章

随机推荐