Python常用运算符及优先级顺序(超详细)

python常用运算符

  • 算术运算符:+、-、*、/、%、**、//
  • 赋值运算符:=、+=、-=、*=、/=、%=、//=、**=、&=、|=、^=、>>=、<<=
  • 比较运算符:==、!=、>、<、>=、<=
  • 布尔运算符:and、or、not
  • 位运算符:&、|、^、~、<<、>>
  • 身份运算符:is、not is
  • 成员运算符:in、not in

1、算术运算符

+a+b
a-b
*a*b
/a/b
%取模,只取余数部分a%b
**幂运算,a的b次方a**b
//取整除,只取整数部分a//b
print(33+21)    #加法  54
print(12-3)     #减法  9
print(2*4)      #乘法  8
print(11/2)     #除法  5.5
print(11//2)    #整除  5
print(11%2)     #取余  1
print(2**4)     #幂运算 16   2的4次方

一正一负的整除(同号为正,异号为负):要向下取整

print(9//4)     #2
print(-9//-4)   #2
print(9/-4)     #-2.25
print(9//-4)    #-3 向下取整
print(-9/4)     #-2.25
print(-9//4)    #-3 向下取整

一正一负的取余:余数=被除数-除数*商

print(9%-4)     #-3  余数=被除数-除数*商 9-(-4)*(-3)
print(-9%4)     #3   -9-4*(-3)

2、赋值运算符

运算顺序是从右到左。

=赋值运算符x = 3
+=加法赋值运算符x+=y 等同于 x=x+y
-=减法赋值运算符x-=y 等同于 x=x-y
*=乘法赋值运算符x*=y 等同于 x=x*y
/=除法赋值运算符x/=y 等同于 x=x/y
%=取余赋值运算符x%=y 等同于 x=x%y
//=整除赋值运算符x//=y 等同于 x=x//y
**=幂赋值运算符x**=y 等同于 x=x**y
x = 3+4 #将3+4的值赋给x
print(x)
x,y,z = 8,2.5,'hello'   #多个变量赋值,=两边的个数要相同
print('x =',x,'y =',y,'z =',z)
a = b = 20  #多个变量赋相同的值,链式赋值,
print(a,b)
print(id(a),id(b))#实际上只有一个对象,但有a,b两个引用指向他。
a = 10
a += 20   #相当于a = a + 20,先计算a+20的值,再赋给a
print(a)    #30
a -= 10     #相当于a = a - 10
print(a)   #20
a *= 2      #相当于a = a * 2
print(a)   # 40
a /= 3      #相当于a = a / 3
print(a)    #13.333333333333334
a //= 2     #相当于a = a // 2
print(a)    #6.0
a %= 5      #相当于a = a % 5
print(a)    #1.0
b = 2
b **= 4     #相当于b = b**4            
print(b)

3、比较运算符

也叫关系运算符,常用作判断,返回结果为布尔类型(True/False),True —> 1 False —> 0。

==比较值是否相等x==y
!=比较值是否不相等x!=y
>大于x>y
<小于x<y
>=大于或等于x>=y
<=小于或等于x<=y
a,b = 20,30
print('a == b吗?',a == b)    #False
print('a != b吗?',a != b)    #True
print('a > b吗?',a > b)      #False
print('a < b吗?',a < b)      #True
print('a >= b吗?',a >= b)    #False
print('a <= b吗?',a <= b)    #True

==比较的是值value。

4、布尔运算符

and两个语句同为真,则返回Truex>5 and x<9
or其中一个 语句为真,返回Truex>3 or x<5
not反转结果,结果为true,返回false,结果为false,返回Truenot(x>5 and x<9
a,b = 10,20
print(a>5 and b>5)  #True     True and True --->  True
print(a>15 and b>15)#False     False and True ---> False
print(a>5 and b>25) #False     True and False ---> False
print(a>15 and b>20)#False     False and False --->  False

x,y = 1,2
print(x==1 or y==2) #True       True or True ---> True
print(x!=1 or y==2) #True       False or True ---> True
print(x==1 or y!=2) #True       True or False ---> True
print(x!=1 or y!=2) #False       False or False ---> False

bo = True
print(not(bo))  #False  对结果取反

5、身份运算符

这里比较的是对象的id(对象有id,type,Value三部分组成),也就是内存地址,可以通过内置函数id()来查看内存地址是否相同。

is若两个变量是同一对象,返回true
is not若两个变量不是同一对象,返回true
a = 20
b = 20
print(a == b)   #True 说明a和b的value相同
print(a is b)   #True 说明a和b的id标识相同。
list1 = [10,20,30,40]
list2 = [10,20,30,40]
print(list1 == list2)   #True list1和list2的值相同
print(list1 is list2)   #False list1和list2的id不相同
print('list1=',id(list1),'list2=',id(list2))     # list1= 2108562143872 list2= 2108562142400
print(list1 is not list2)   #True

== 判断两个变量的值是否相等

is 判断两个变量的引用是否是同一个内存地址。

6、成员运算符

用于判断对象是否是指定序列的元素之一,返回结果是True或者False。

in对象在具有指定值的序列中,返回True
not in对象不在具有指定值的序列中,返回True
str1 = 'hello,world'
print('e' in str1)  #True   e在str1中,所以返回true
print('p' in str1)  #False   p不在str1中,所以返回False

lst1 = ['java','python','javscript']
print('python' in lst1)    #True
print('apple' not in lst1)  #True

7、位运算符

位运算符要把数字转为二进制来进行计算。

&按位与:对应位数都为1,结果才为1,否则为0
|按位或:对应位数都为0,结果才为0,否则为1
^按位异或:两个相应位为异(值不同),则为1,否则为0
~按位取反:将每个二进制位取反,1变为0,0变为1
<<左移位运算:把二进制位全部左移指定位数,高位溢出舍弃,低位补0
>>右移位运算:把二进制位全部右移指定位数,低位溢出舍弃,高位补0
#8: 0 0 0 0 1 0 0 0
#16:0 0 0 1 0 0 0 0
print(8&16)     #0   按位与,同为1时,结果才为1
print(8|16)     #24  按位或,同为0时,结果才为0
print(8^16)     #24  按位异或,对应位相异,结果为1,否则为0

print(8<<1)     #16   左移1位,高位溢出舍弃,低位补0,相当于乘以2
print(8<<2)     #32
print(8>>1)     #4    右移1位,低位溢出舍弃,高位补0,相当于除以2
print(16>>2)    #4    右移2位,低位溢出舍弃,高位补0,相当于除以4
图片[1]-Python常用运算符及优先级顺序(超详细)-尤尤'blog
图片[2]-Python常用运算符及优先级顺序(超详细)-尤尤'blog

运算符优先级

运算符优先级由高到低

()有括号的先算括号里面的
**算术运算符
*、/、%、//算术运算符
+、-算术运算符
>>、<<位运算符
&位运算符
^、|位运算符
>、<、>=、<=、==、!=比较运算符
=、%=、/=、//=、-=、+=、*=、**=、赋值运算符
is 、is not身份运算符
in、not in成员运算符
and、or、not逻辑运算符

() —> 算术运算符(先算乘除,再算加减,有幂运算的先算幂运算) —-> 位运算符 —-> 比较运算符(结果为True或者False) —-> 布尔运算符 —-> 赋值运算符

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容