#运算符
- 由一个以上的值经过一些列的运算得到新值的过程叫做运算
- 用来操作运算的符号叫做运算符
- 运算符的分类
- 算数运算符
- 赋值运算符
- 比较或者关系运算符
- 逻辑运算符号
- 位运算
- 成员运算符
- 身份运算符
#算数运算符
- 用来进行算数运算的符号
- 通常来表示加减乘除
- python没有自增自减运算符
#算数运算符案例 #加减乘跟数学基本一致 a = 9-2 print(a) #7 b = 8 + 5 print(b) #13 c = 2 * 6 print(c) #12
#python的出发分为普通除法,地板除,取余 #普通除法 d = 9 / 2 print(d) #2.7版本与3.x版本略有不同,2.7直接取整,3.x运算结果为4.5 #地板除 e = 9 // 2 print(e) #4 #取余 f = 9 % 2 print(e) #1
#指数运算符
g = 7 ** 2
print(g) #49
#比较运算符
- 对两个内容进行比较的运算符
- 结果一定为一个布尔值,即True/False
# 等于 == #一个等号为赋值 a = 3 == 4 print(a) #False #不等于 != a = 3 != 4 print(a) #True #其他的符号是 #>, >=, < , <= print(3 >= 4) #False print(‘123‘ > ‘012‘) #False
#赋值运算符
- 把一个值放到变量里边去
#赋值符号 = 运算优先级最低 a = 6 #复杂赋值 a = b = 6 a, b = 1,2 #赋值的缩写 a = a+ 3 print(a) #4 b += 3 print(b) #5 #所有数学运算符都可以缩写 # -= , += , /= , //= , **=,都是可以缩写
#逻辑运算符
- 对布尔类型变量或者值进行运算的符号
- and:逻辑与
- or:逻辑或
- not:逻辑非
- python里面的逻辑运算没有异或
- 运算规则:
- and看作乘法,or看作加法
- True看作1,False看作0
- 逻辑运算即可转换成整数运算
- 最好结果如果是0则为False,否则为True
- 逻辑运算的短路问题
- 逻辑运算式,按照运算顺序计算,一旦能够确认整个式子未来的值,不再进行计算,直接返回
#逻辑表达式 a = True b = True c = False aa = a and b #左边的表达式可以转换成1*1 print(aa) #True bb = a and c print(bb) #False cc = 100 and c print(cc) #False #布尔值跟数字的转换 #数字转换成布尔值的时候,0 = False,其余都是True #布尔值转换成数字的时候,True = 1,False = 0
# 短路问题1 a = True b = True c = False aa = a or b and (a and b) #转换成算数 1+ ........ print(aa) #True #短路问题2 def a(): print(‘a‘) return True def b(): print(‘b‘) return True if a() and b(): #没有短路,看到a()=True ,运算符为乘,所以还需要看b()的值 print(‘test11111‘) print("*" *20) #分隔符 if a() or b(): #运算符为or,则只需看a()=True,没必要执行下去了 print(‘test222222‘)
#成员运算符
- 用来检测一个值或者变量是否存在某个集合里面
- in:成员运算符
- not in:不在成员里面
#in 案例 ll = [1,2,3,4,5] a = 6 aa = a in ll print(aa) #False #a没有在ll里面 aa = a not in ll print(aa) #True
#身份运算符
- 用来确定两个变量是否是同一个变量
- is:变量运算符
- is not:不是
- 对整数N \in [-5,256],解释器对他们做了单独的处理,放进了固定的内存中,不因每次运行而变化。
不仅仅是对小整数有这样的操作,内建的类(int,object,TypeError。。。)也都是这样处理的。(详见下面的案例)
#身份运算符定义 a = 1 b = 2 aa = a is b print(aa) #False #a和b仅仅是值一样,并不代表a,b是一个变量 #可以理解为a,b为两个不同存储的内存地址 a = 666666 b = 666666 aa = a is b print(aa) #False #python在数值比较小的时候,将值5放入到一块内存中,当有a,b赋值为5时,直接指向这个内存,不单独开辟新的内存空间重新定义 a = 5 b = 5 aa = a is b print(aa) #True
#运算符优先级问题
- 小括号具有最高优先级
** 指数运算符
~ + - 按位翻转
* / % // 乘,除,取模,整除
+ - 加减法
》 《 左移,右移运算符
$ 位运算‘and’
^ | 位运算符
比较运算符 <= >= < >
等于运算符 <> == !=
赋值运算符 = %= /= -= += *= /=
身份运算符 is is not
成员运算符 in not in
逻辑运算符 not or and
原文:https://www.cnblogs.com/landminejue/p/14143117.html