>>> a=1 >>> b = 2 >>> c = 3 >>> a + b * c 7 >>> a or b and c 1 //and优先级高于or,以下是对a or b and c的分解,b和c先做与运算,得到的结果再与a做或运算。 >>> a or b and c 1 >>> b and c 3 >>> 1 or 3 //逻辑运算符优先级最低,**运算符最高(指数运算),and优先级高于or。 运算规则:如果操作符优先级同级,解释器就从左向右运算, 3 + 2 -1:从左向右运算。如果想强制让解释器按照自己的要求进行运算的顺序调整,用括号,括号的优先级最高,如果有两个括号?那就是从第一个开始运算,然后两个括号的运算结果再进行运算。从左至右:左结合。通常都是左结合;但是也有特例,赋值运算符,c = a + b;先运算a + b,再赋值给c,而不能是c = a,再与b相加。再如:c = a or b; = 的优先级比or高,但是还是a和b运算,再赋值给c。
>>> not a or b + 2 == c //左结合规则(没有赋值运算符) False 它等价于: >>> (not a) or ((b + 2) == c) False 优先级:not > and > or
>>> not a or b + 2 == c False >>> (not a )or ((b + 2) == c) False //可以用括号辅助理解,根据运算符号的优先级。优先级:算术运算符优先级 > 比较运算符 > 逻辑运算符。