圓整問題:
對於整數運算,需要明白一個重點就是它向下圓整結果,即圓整后得到的值不大於實際值。因此在結果為負數的情況下,圓整后將離0更遠,比如-3.3圓整后的結果就是-4。着意味着對於-10 // 3,將向下圓整到-4,而不是向上圓整到-3。
>>> 10 // 3
3
>>> 10 // -3 左邊的代碼中10 // 3取整即為3;-10 // 3的
-4 實際值應為-3.33333,所以向下圓整到-4。
>>> -10 // 3
-4
>>> -10 // -3 -10 // -3的值應為3.33333,向下圓整到3
3
整除(//)總是向下圓整,而內置函數round圓整到最接近的整數,並在兩個整數一樣近時圓整到偶數。
>>> round(3.2)
3
>>> round(3.6)
4
>>> round(3.5)
4
>>> round(2.5)
2
取模問題:
>>> 10 % 3
1
>>> 10 % -3 左邊的代碼中10 % 3取模即為1;-10 // 3的
-2 實際值應為-3.33333,向下圓整到-4,
>>> -10 % 3 又-4 * 3 = -12,所以-10 % 3 = 2(-4 * 3 + 2 = 10);
2 10 % -3 = -2(-4 * -3 -2 =10);
>>> -10 % -3 -10 % -3 = -1(3 * -3 + -1 =-10)
-1