我是Python新手,我现在正在学习操作员.我明白:
该/
运营商用于floating point division
和
//
对integer division
.
例:
7//3 = 2
并且7//-3=-3
.为什么答案-3
?
我被困在这里.
//
是不是整数除法,但地板师:
7/-3 -> -2.33333... 7//-3 -> floor(7/-3) -> floor(-2.33333...) -> -3
PEP 238
上改变除法运算符:
该
//
运营商将提供给请求地板分工明确.
另请参阅为什么Python的Integer Division Floors(感谢@eugene y) - 基本上7//-3
是-7//3
,所以你希望能够写:
-7 = 3 * q + r
使用q
整数(负,正或零)和r
整数0 <= r < 3
.这只适用于q = -3
:
-7 = 3 * (-3) + 2
//
是地板部门的运营商.
这意味着,分割完成后的"地板"函数被应用(从分割检索到的值向下舍入为最接近的整数无论的小数部分是大于还是小于0.5)
至于你的例子,要注意,对于否定答案,地板除法运算符仍将向下舍入(例如-5/2 - > -2.5 - > -3).