Python 取余

问: Python 计算 -7%4 + 1 与 1 - 7%4 二者计算结果相等吗?

答: 不等!前者结果为2,后者为-2。

 

对此,作如下两点解释:

1. 首先看一下Python计算的优先级,官方手册的截图如下(https://docs.python.org/2/reference/expressions.html#id20):

The following table summarizes the operator precedences in Python, from lowest precedence (least binding) to highest precedence (most binding).

可以看到%的优先级是高于“加、减运算”,而低于“数的正、负级”。

所以-7%4 + 1中先计算的是(-7)%4,

而1-7%4中先计算的是7%4 。

2. 取余计算的原则 —— 余数应该大于0

-7 = (-2)*4 +1,所以-7%4 = 1

7 = 1*4 + 3, 所以7%4 = 3

posted @ 2017-12-08 08:29  YWU  阅读(2641)  评论(0)    收藏  举报