% :python中,符号 % 其实是取模,不是取余。
取余与取模的差别:
当两个数均为正数是,取余与取模的结果是一致的,而当两个数一正一负时结果就不一样了。
举例:
a = -5, b = 3, y = 余数, m = 模
取余过程:
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
代码操作
# 两数符号不同的情况
a = -5
b = 3
# 取模操作很简单,通过 % 符号即可实现
m = a % b
# 取余
c