Python中常用的运算符有算术运算符、关系运算符、身份运算符、成员运算符、逻辑运算符、赋值运算符共 7 大类,掌握七大运算符的优先级,对解题很有帮助。具体见下表:
运算符类型(从高到低) | 说明 |
---|---|
() | 括号的优先级最高 |
算术运算符 | ** > * 、/ 、% 、// > + 、- |
关系运算符、身份运算符、成员运算符 | >、>=、<=、==、!= is、not is in、not in |
逻辑运算符 | not > and > or |
赋值运算符 | =、+=、-=、*=、/=、%=等 |
()
的优先级是最高的,有括号先算括号print(3+5*2) # 输出:13
print((3+5)*2) # 输出:16
**
幂运算符的优先级最高*
、/
、%
、//
次之+
、-
最后print(5*2**3) # 输出:40
print(-2**3) # 输出:-8。先进行幂运算,再进行负号运算
这三个运算符是平级的,但是在计算时并不像其他运算符那样按照先后顺序进行计算,而是使用and进行拆分,例如
True == False in [False]
,无论是先算==
还是in
,结果都是True
。但实际的运行结果是False
,这是因为上述表达式等价于True == False and False in [False]
print(1<2<3) # 输出:True。等价于1<2 and 2<3
print(True == False in [False]) # 输出:False。等价于True == False and False in [False]
print(5>3 and not 5==3) # 输出:True
print(1 or 2) # 输出1
print(1 and 2) # 输出2