python3中的负数整除、求余问题

注:小白问题,大神们请忽略
先看示例,非整除:

>>> -10/3
-3.3333333333333335
>>> 10/-3
-3.3333333333333335
>>> -10/-3
3.3333333333333335

根据除法法则,取整除结果(有个叫法,向下圆整结果),是不大于非整除结果的最大(负)整数,因此,以上三个表达式的整除结果应分别为:
-4
-4
3

验证如下:

>>> -10//3
-4
>>> 10//-3
-4
>>> -10//-3
3

根据求余法则,余数为执行整除时余下的部分,即 x % y 等价于 x - (( x // y ) * y ),因此,以上三个表达式的求余结果应分别为:
-10 - ( -4 * 3 ) = 2
10 - ( -4 * -3 ) = -2
-10 - ( 3 * -3 ) = -1

验证如下:

>>> -10%3
2
>>> 10%-3
-2
>>> -10%-3
-1

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章