Python 3中的整数除法-带负数的奇怪结果

Python 3中的整数除法-带负数的奇怪结果,python,python-3.4,integer-division,Python,Python 3.4,Integer Division,我是Python新手,现在正在学习操作符。 我明白: /运算符用于浮点除法和 /用于整数除法 示例: 7//3 = 2 和7/-3=-3。为什么答案是-3 我被困在这里。/不是整数除法,而是地板除法: 7/-3 -> -2.33333... 7//-3 -> floor(7/-3) -> floor(-2.33333...) -> -3 更改除法运算符时: /操作员可以明确地请求楼层划分 另请参见(感谢)-基本上7//-3是-7//3,因此您希望能够编写: -7

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

  • /
    运算符用于
    浮点除法
  • /
    用于
    整数除法
示例:

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

我被困在这里。

/
不是整数除法,而是地板除法:

7/-3  -> -2.33333...
7//-3 -> floor(7/-3) -> floor(-2.33333...) -> -3
更改除法运算符时:

/
操作员可以明确地请求楼层划分

另请参见(感谢)-基本上
7//-3
-7//3
,因此您希望能够编写:

-7 = 3 * q + r

使用
q
一个整数(负、正或nul)和
r
一个整数,使得
0
/
是楼层分割的运算符

这意味着在除法完成后,应用“floor”函数(从除法中检索的值向下舍入到最接近的整数,而不管小数部分是大于还是小于0.5)


对于您的示例,请注意,对于否定答案,楼层分割运算符仍将向下舍入(例如-5/2-->-2.5-->-3)。

另请参见
5/-3
?@Kaushik
5\\\-3
在python中不存在。如果你的意思是
5//-3
,这与
7//-3
的解释相同,因为
-5=3*(-2)+1
-7 = 3 * (-3) + 2