-
print(-123%10) # 输出 7
-
print(-123%-10) # 输出 -3
这里面第二条是我们一般意义上的取余操作。这里也特别标注一下,如果涉及到负数取余要用上述解决办法。
那么我们看第一条,结果等于7。这个结果有点让人摸不到头脑,不过这个结果与Python的底层机制有关。
在Python中,取余的计算公式与别的语言并没有什么区别:r=a-n*[a//n]
这里r是余数,a是被除数,n是除数。
不过在“a//n”这一步,当a是负数的时候,我们上面说了,会向下取整,也就是说向负无穷方向取整。这也就得到:
-123%10 = -123 - 10 * (-123 // 10) = -123 - 10 * (-13) = 7
这里还不得不提的是
print(123%-10)
这个情况,结果为:
-7