余数(取模计算)的计算逻辑
一:前言
前言: python中的取模计算与其他语言略有不同。一般而言,取模运算就是正常除法中的求余数。但由于语言逻辑的不同,python中在面对 被除数和除数符号不同的时候,求得的余数与预期的输出略有不同。此时,便需要了解一下在python中取模运算的逻辑
二:一张图解决全部问题
三:详解
- 由图可知,取模的计算公式为 r = a - n *(a // n)
- 为什么python在遇到除数和被除数符号不一致时,会出现取模得数与通常认识不一样呢?其实中结合图和公式我们可以发现
- 造成这一现象的原因,是因为 整除 // 运算的原因,整除并不是所有语言都有的计算,而且在python中整除得数是要向下取整的
- 由此可知,在图中的后两个例子 (123//-10)和(-123//10)得数都是 -12.3 但在经过向下取整之后得数成了 -13,所以造成了在python中被除数和除数符号不一致时的结果与预期不同