我是Python的新手,我现在正在学习操作员。 我明白了:
/
运算符用于floating point division
和//
代表integer division
。示例:
7//3 = 2
7//-3=-3
。答案为什么是-3
?
我被困在这里。
答案 0 :(得分:27)
//
不是整数除法,而是 floor 除法:
7/-3 -> -2.33333...
7//-3 -> floor(7/-3) -> floor(-2.33333...) -> -3
PEP 238
更改分部操作员:
//
运算符可用于明确请求 floor 部门。
另请参阅Why Python's Integer Division Floors(感谢@eugene y) - 基本上7//-3
为-7//3
,因此您希望能够写下:
-7 = 3 * q + r
q
整数(负,正或零)和r
整数,0 <= r < 3
。这仅适用于q = -3
:
-7 = 3 * (-3) + 2
答案 1 :(得分:8)
//
是分区的运营商。
这意味着在除法完成后应用“floor”函数(从除法中检索的值向下舍入到最接近的整数,无论小数部分是大于还是小于0.5)
至于你的例子,请注意,对于否定答案,场内分割算子仍将向下舍入(例如-5/2 - > -2.5 - > -3)。