在之前学习过的编程语言里,如c,c#,%留给我们的印象都是用来取余的,在学习python时,发现%竟然和之前学习到的有点不一样。
这是为什么呢?
原来,python中,符号 % 其实是取模,不是取余。
取余与取模的差别:
当两个数均为正数是,取余与取模的结果是一致的,而当两个数一正一负时结果就不一样了。
1.当两个数都是正数时,
2.当一个数是负数时,
取余过程:
c = a / b = -1.67
取余时,会将 c 向0的方向舍弃掉小数部分,c = -1.67,舍弃后 c = -1
则余数计算如下:
y = a - b * c = -5 - (3 * (-1)) = -2
取模过程
c = a / b = -1.67
取模时,会将 c 向负无穷的方向取整,比如此处 c = -1.67,向负无穷方向取整后 c = -2,
则取模计算如下:
m = a - b * c = -5 - 3 * (-2) = 1
3.当两个数都是负数时