圆整问题:
对于整数运算,需要明白一个重点就是它向下圆整结果,即圆整后得到的值不大于实际值。因此在结果为负数的情况下,圆整后将离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