python modulo为什么1-4%5与(1-4)%5不一样

时间:2014-09-27 02:05:22

标签: python modulo parentheses

有谁知道为什么下面的代码在Python中没有相同的结果? 为什么我需要括号来获得正确的结果?

#example 1
print 1-4 %5
outcome: -3

#example 2
print (1-4)%5
outcome: 2

2 个答案:

答案 0 :(得分:2)

这是由于operator precedence。 Mod(%)优先于-,因此:

1-4 % 5 == 1 - (4 % 5) == 1 - 4 == -3

(1-4) % 5 == -3 % 5 == 2

答案 1 :(得分:1)

Python运算符优先级的减去仅低于模数

http://www.mathcs.emory.edu/~valerie/courses/fall10/155/resources/op_precedence.html

*, /, % Multiplication, division, remainder
+, -    Addition, subtraction