python的计算符优先级

python为了风格更简洁,和其他语言相比有一些特殊的运算符,这里面容易踩到坑。本周遇到一个,所以整理一下这方面。

逻辑运算符

优先级not>and>or
这次犯的错误就是判断条件
按照从左到有的顺序很明显是False,但其实python是先算and的。

>>> True or False and False
True

算数运算符

** 表示幂运算

>>> from timeit import timeit
>>> timeit('2 ** i', setup='i = 20')
0.06464695930480957
>>> timeit('pow(2, i)', setup='i = 20')
0.12627506256103516
>>> timeit('math.pow(2, i)', setup='import math; i = 20'

可以看出比pow和math.pow快,因为省掉了函数调用的时间
对应也有**=符号

对象判断运算符

is,isnot,其实就是判断两个值是不是同一个对象,占用同一地址空间

猜你喜欢

转载自blog.csdn.net/weixin_41571449/article/details/79767599