为什么在 Python 1%2>>>1 或 5%6>>>5

问题描述

如果 % 应该返回余数,那么为什么

>>>1%2
1
>>>5%6
5

什么时候

>>>1/2
0.5
>>>5/6
0.83(3)

解决方法

这来自模数的数学定义,即:

x= quotient(x//y) * y + modulo(x%y)

在您的示例中,商为零,结果为:

5 = 0 * 6 + modulo(5%6) => modulo(5%6) = 5

1 = 0 * 2 + modulo(1%2) => modulo(1%2) = 1