算数运算符
#运算符
- 由一个以上的值经过一些列的运算得到新值的过程叫做运算
- 用来操作运算的符号叫做运算符
- 运算符的分类
- 算数运算符
- 赋值运算符
- 比较或者关系运算符
- 逻辑运算符号
- 位运算
- 成员运算符
- 身份运算符
#算数运算符
- 用来进行算数运算的符号
- 通常来表示加减乘除
- 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