大家好,又见面了,我是你们的朋友全栈君。
最近做题发现-123%10=7,于是查阅了一下python的取余机制,这里记录。
参考:https://blog.csdn.net/sun___M/article/details/83142126
//:向下取整
int():向0取整
正数的取余比较直接:
print(123%10) #3
这里结果为3。
但是换为负数取余,情况就有所不同:
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
这个通过公式我们也能清楚地计算出来。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141628.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...