Python模运算符给出了不好的结果

Jac*_*raw -3 python modulo

>>> m = 3403
>>> 31 % m
31
>>> 031 % m
25
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 8

这对%操作员来说不是问题.您不小心使用了Python整数文字功能.

您通过在数字前添加前缀来创建八进制0:

>>> 31
31
>>> 031
25
Run Code Online (Sandbox Code Playgroud)

3 * 8 + 1不是3 * 10 + 1.

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