python中的运算符和其优先级

2021/9/12 11:05:14

本文主要是介绍python中的运算符和其优先级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、常用运算符

(1)算术运算符

①标准算是运算符

②取余运算符

③幂运算符

(2)赋值运算符

(3)比较运算符

(4)布尔运算符

(5)位运算符

2、算术运算符

(1)标准运算符:加(+)、减(-)、乘(*)、除(/)

(2)取余运算符:%

(3)幂运算符:**

(4)例题:

print(1+1)  #加法运算符
print(1-1)  #减法运算符
print(2*4)   #乘法运算符
print(1/2)   #除法运算符
print(11//2)   #整除运算
print(11%2)   #取余运算符
print(2**2)  #表示2的2次方

输出结果:

 (5)算术运算符:

运算符表示例子结果
+1+12
-1-10
*2*48
/1/20.5
%取余(一正一负要公式)9%41
余数=被除数-除数*商

9%-4

9-(-4)*(-3)

-3
/ /整数(一正一负向下取整>11//25
9//-4-3
-9// 4-3
**幂运算2**38

3、赋值运算符(=)

(1)执行顺序:

右→左

(2)支持链式赋值

a=b=c=20

(3)支持参数赋值

+=\ 、 -= 、+=、/=、//=、%=

(4)支持系列解包赋值

a,b,c=20,30,40

(5)例题:

 ①链式赋值:

i=3+4
print(i)
a=b=c=20
print(a,id(a))
print(a,id(b))
print(c,id(c))

输出结果:由结果可以看出a,b,c所指向的地址都是同一个,也就是所谓了链式赋值

 ②支持参数赋值

=3+4
print(i)
a=b=c=20
print(a,id(a))
print(a,id(b))
print(c,id(c))
a=20
a+=30  #相当于a=a+30
print(a)
a-=10  #相当于a=a-10;
print(a)
a*=2  #相当于a=a*2
print(type(a))  #int类型
a/=3
print(type(a))   #相当于时从int类型转化为float类型
print(a)
a//=2 #相当于a=a//2
print(type(a))   #此时还是float类型的
print(a)
a%=2  #相当于a=a%2

输出结果:

 ③支持解包赋值

a,b,c=20,30,40
print(a,b,c)

输出结果:

就相当于是把40赋值给c,30赋值给b,20赋值给a,使用的时候记得要一一对应,就是左边个数要等于右边个数

4、比较运算符

对变量或表达式的结果进行大小、真假等比较

(1)>,K,>=,<=,!=

(2)==

对象value的比较

(3)is,is not

对象的id的比较

(4)例子

#比较运算符,比较运算符的结果为bool类型
a,b=10,20
print('a>b吗?',a>b)  #结果为false
print('a<b吗?',a<b)  #结果为true
print('a<=b吗?',a<=b)  #结果为true
print('a>=b吗?',a>=b)  #结果为flase
print('a==b吗?',a==b)  #结果为false
print('a!=b吗?',a!=b)  #结果为true
'''一个=称为赋值运算符,一个==称为比较运算符
  一个变量由两部分组成,标识,类型,值
  ==比较的是值还是标识呢?比较的是值
  比较对象的标识使用 is
'''
print('=================对象标识符 is的例子=============')
a=10
b=10
print(a==b)  #true,说明,a与b的value,相等
print(a is b)  #true,说明a与b的id标识,相等

#再看下一组例子,还是is的例子
lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lst1==lst2)   #比较的是value ---> 结果是true
print(lst1 is lst2)   #比较的是id(也就是标识) ----->结果是false
print(id(lst1))
print(id(lst2))
print(a is not b)  #结果是false ,a的id与b的id是相等的
print(lst1 is not lst2) #结果是true,lst1的id与lst2的id是不相等的

 输出结果:

 

5、布尔运算符

(1)布尔运算符:and、or、not、in、not in

(2)布尔运算符图表:

运算符运算数运算结果备注
andTrueTrueTrue当两个运算数都为True时,运算结果才为True
TrueFalseFalse
FalseTrue
FalseFalse
orTrueTrueTrue只要有一个运算数为True,运算结果就为True
TrueFalse
FalseTrue
FalseFalseFalse
notTrueFalse如果运算数为True,运算结果为False
FalseTrue如果运算数为False,运算结果为True

(3)例子:

#布尔运算符
a,b=1,2
#and举例:
print('==========and ,并且==================')
print(a==1 and b==2) #结果为:true  -->true and true -->true
print(a==1 and b<2) #结果为:false  -->true and flase -->false
print(a!=1 and b==2) #结果为:false  -->false and true -->false
print(a!=1 and b!=2) #结果为:true  -->false and false -->true

print('=============or,或者=============================')
print(a==1 or b==1)   #结果为true,-->  true  or  true-->true
print(a==1 or b<2)    #结果为true,-->  true  or  flase -->true
print(a!=1 or b==2)    #结果为true,-->  flase  or  flase -->true
print(a!=1 or b!=2)    #结果为true,-->  flase  or  flase -->flase


print('=============not 对bool类型操作数进行取反=========================')
f= True
f2=False
print(not f)  #结果为false
print(not f2)   #结果为true


print('===========int 与not in =============')
s='helloworld'
print('w' in s)  #结果为true
print('k 'in s)  #结果为flase
print('w'not in s)  #结果为flase
print('k'not in s)  #结果为true

输出结果:

 

6、位运算符(将数据转成二进制进行计算)

(1)位与&

对应数位都是1,结果数位才是1,否则为0

(2)位或|

对应数位都是0,结果数位才是0,否则为1

(3)左移位运算符<<

高位溢出舍弃,低位补0

(4)右移位运算符>>

低位溢出舍弃,高位补0

(5)举例:

①位或&:绿色那行代表的是4的二进制,蓝色那行代表8的二进制,只有当每一列的绿色和蓝色都为1时结果才为1,结果就是肤色那一行,因为每一列的结果都是0,所以总结果为0

 ②位或|:(1100的二进制对应的十进制为12,所以结果为十二)

 ③左移位运算符<<:

 ④右移位运算符>>:

 ⑤

#位运算符:
print('========位或&============')
print(4 & 8)  #同时为1,结果才为1

print('==============位或|===============')
print(4|8)  #同时为0,结果才为0,否则为1,输出的结果是12

print('==============左移位=============')
print(4<<1) #向左移动1位(移动一个位置),相等于乘于2

print(4<<2)  #向左移动2位(移动两个位置)
print('============右移位============')
print(4>>1) #向右移动1位(移动一个位置),相等于除于2#

运行结果:

 

7、运算符优先级

 

 



这篇关于python中的运算符和其优先级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程