Python中%运算问题

时间:2016-03-07 20:25:18

标签: python

a-b*i变为否定时,为什么使用Python 2.7时-8 % 5 2而不是3-3

a = 12
b = 5

for i in range(10):
    print a-b*i, (a-b*i) % b

12 2
7 2
2 2
-3 2
-8 2
-13 2
-18 2
-23 2
-28 2
-33 2

1 个答案:

答案 0 :(得分:1)

您可以使用谷歌计算器自行检查:

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=-8+%25+5

当你对a / n进行Euclidian分割时,你会收到提醒。整个交易应该满足一个等式 a = qn + r 其中q是商,属于Z(从-inf到+ inf的整数) 所以在你的情况下

-8 = 5 * (-2) + 2
thus 
r = 2 = (-8) % 5