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+1 | 2 |
- | 减 | 1-1 | 0 |
* | 乘 | 2*4 | 8 |
/ | 除 | 1/2 | 0.5 |
% | 取余(一正一负要公式) | 9%4 | 1 |
余数=被除数-除数*商 | 9%-4 9-(-4)*(-3) | -3 | |
/ / | 整数(一正一负向下取整> | 11//2 | 5 |
9//-4 | -3 | ||
-9// 4 | -3 | ||
** | 幂运算 | 2**3 | 8 |
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)布尔运算符图表:
运算符 | 运算数 | 运算结果 | 备注 | |
and | True | True | True | 当两个运算数都为True时,运算结果才为True |
True | False | False | ||
False | True | |||
False | False | |||
or | True | True | True | 只要有一个运算数为True,运算结果就为True |
True | False | |||
False | True | |||
False | False | False | ||
not | True | False | 如果运算数为True,运算结果为False | |
False | True | 如果运算数为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、运算符优先级