Python模运算符给出了错误的结果

Python模运算符给出了错误的结果,python,modulo,Python,Modulo,我在终端测试RSA时使用python。我不知道为什么最后一行给出了它的结果。有什么想法吗?这不是%操作符的问题。您不小心使用了Python整数文字特性 您通过在数字前面加上0,创建了一个八进制数字: >>> m = 3403 >>> 31 % m 31 >>> 031 % m 25 这是3*8+1,而不是3*10+1 在Python3中,您不能再以这种方式创建八进制数,只能使用0o前缀。PS:Python3中,031raiseSyntaxE

我在终端测试RSA时使用python。我不知道为什么最后一行给出了它的结果。有什么想法吗?

这不是
%
操作符的问题。您不小心使用了Python整数文字特性

您通过在数字前面加上
0
,创建了一个八进制数字:

>>> m = 3403
>>> 31 % m
31
>>> 031 % m
25
这是
3*8+1
,而不是
3*10+1


在Python3中,您不能再以这种方式创建八进制数,只能使用
0o
前缀。

PS:Python3中,
031
raise
SyntaxError:invalid token
。是的,正如我所说,您不能再在Python3中使用该语法。
>>> 31
31
>>> 031
25