一、运算符
1、算术运算符
对数字进行数学运算,比如加减乘除等。
运算符 | 说明 | 举例 | 结果 |
---|---|---|---|
+ | 加 | 1.2+1.3 | 2.5 |
- | 减 | 1.3-1.2 | 0.1 |
* | 乘 | 1.3*1.2 | 1.56 |
/ | 除 | 1.3/1.2 | 1.0833333333333335 |
// | 整除 | 1.3//1.2 | 1.0 |
% | 取余,即返回除法的余数 | 1.3%1.2 | 0.10000000000000009 |
** | 幂次方运算 | 1.3**1.2 | 1.3700361376803185 |
Python脚本:
import decimal print("-----加-----") a = 1.3 b = 1.2 print(a+b) print("-----减-----") a = 1.3 b = 1.2 c = decimal.Decimal("1.3") d = decimal.Decimal("1.2") print(a-b) print(c-d) print("-----乘-----") a = 1.3 b = 1.2 print(a*b) print("-----除-----") a = 1.3 b = 1.2 print(a/b) print("-----整除-----") a = 1.3 b = 1.2 print(a//b) print("-----取余-----") a = 1.3 b = 1.2 print(a%b) print("-----幂次方-----") a = 1.3 b = 1.2 print(a**b)
输出结果:
2、赋值运算符
(1)执行顺序:右→左
(2)支持链式赋值:a=b=c=10
(3)支持参数赋值:+=、-=、*=、/=、//=、%=
(4)支持系列解包赋值:a,b,c=1,2,3
Python脚本:
print("-----执行顺序:右→左-----") a = 1+2 print(a) print("-----支持链式赋值-----") b = c= d = 10 print(b,id(b)) print(c,id(c)) print(d,id(d)) print("-----支持参数赋值:+=、-=、*=、/=、//=、%=-----") a = 10 a += 1 print(a) b = 2 b -= 1 print(b) c = 3 c *= 4 print(c) d = 5 d /= 2 print(d) e = 5 e //=2 print(e) f = 5 f %= 2 print(f) print("-----支持系列解包赋值-----") m,n,s = 1,2,3 print(m,id(m)) print(n,id(n)) print(s,id(s))
输出结果:
3、比较运算符
对变量或表达式的结果进行大小、真假比较
比较运算符:>,<,>=,<=,!=
== :对象value的比较
is,is not:对象id的比较
Python脚本:
print('----->,<,>=,<=,!=-----') a = 1 b = 2 print('a>b吗?',a>b) print('a<b吗?',a<b) print('a>=b吗?',a>=b) print('a<=b吗?',a<=b) print('a≠b吗?',a!=b) print('----- == :对象value的比较-----') c = 3 d = 4 e = 3 print(c==d) print(c==e) print('----- is,is not:对象id的比较-----') c = 3 d = 4 e = 3 print(c is not d) print(c is d) print(c is not e) print(c is e)
输出结果:
4、布尔运算符
布尔运算符:and,or,not,in,not in
运算符 | 运算数 | 运算结果 | 备注 | |
---|---|---|---|---|
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 |
Python脚本:
print('-----and-----') a,b = 1,2 print(a==1 and b==2) print(a==1 and b!=2) print(a!=1 and b==2) print(a!=1 and b!=2) print('-----or-----') a,b = 1,2 print(a==1 or b==2) print(a==1 or b!=2) print(a!=1 or b==2) print(a!=1 or b!=2) print('-----not-----') c = False d = True print(not c) print(not d) print('-----in/not in-----') s = 'Hello' print('H' in s) print('H' not in s) print('s' in s) print('s' not in s)
输出结果:
5、位运算符
将数据转成二进制进行计算,数字转换为二进制使用内置函数: bin()
(1)位与&:对应数位都是1,结果数位才是1,否则为0
(2)位或 | :对应数位都是0,结果数位才是0,否则为1
(3)左移位运算符<<:高位溢出舍弃,低位补0
(4)右移位运算符>>:低位溢出舍弃,高位补0
Python脚本:
a = 4 b = 8 m = bin(a)#转换为二进制 n = bin(b)#转换为二进制 print("-----4&8-----") print(4&8) print("-----4|8-----") print(4|8) print("-----4>>1-----") print(4>>1) print("-----4<<1-----") print(4<<1)
输出结果:
运算逻辑:
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 12 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 | |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ||
高位补0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 低位截断 | 2 |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 | |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ||
高位溢出 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 低位补0 | 8 |
二、运算符优先级
算术运算符→位运算符→比较运算符→布尔运算符→赋值运算符
前提:无括号,有括号,括号内优先