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

 

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