'''常用运算符
算术运算符 标准算术运算符:加(+) 减(-) 乘(*) 除(/) 整除(//)
取余运算符:%
幂运算符:**
赋值运算符
比较运算符
布尔运算符
位运算符'''
print('----算术运算符----')
print(1+1) #加法运算
print(1-1) #减法运算
print(2*4) #乘法运算
print(1/2) #除法运算
print(11//2) #5 整除运算
print(11%2) #取余运算
print(2**3) #幂运算符
print(9//2) #2
print(-9//-2) #2
print(-9//2) #-5 一正一负的整数公式,向下取整
print(9//-2) #-5
print(9%-2) #-1 公式:余数=被除数-除数*商
print(-9%2) #1
#赋值运算符,运算顺序从右到左 支持链式赋值:a=b=c=20 支持参数赋值:+= -= *= /= //= %= 支持系列解包赋值:a,b,c=20,30,40
print('----赋值运算符----')
i=3+4
print(i)
a=b=c=20 #链式赋值
print(a,id(a))
print(b,id(b))
print(c,id(c))
print('----支持参数赋值----')
a=20
a+=30 #相当于a=a+30
print(a)
a-=10 #相当于a=a-10
print(a)
a*=2 #相当于a=a*2
print(a) #int
print(type(a))
a/=3
print(a)
print(type(a)) #float
a//=2
print(a)
print(type(a))
a%=3
print(a)
print(type(a))
print('----解包赋值----')
a,b,c=20,30,40
print(a,b,c)
#a,b=20,30,40 报错,因为左右变量的个数不对应
print('----交换两个变量的值----')
a,b=10,20
print('交换之前:',a,b)
a,b=b,a
print('交换之后:',a,b)
print('----比较运算符----')
#比较运算符,比较运算符的结果为bool类型
a,b=10,20
print('a>b吗?',a>b) #False
print('a=b吗?',a>=b) #False
print('a==b吗?',a==b) #False
print('a!=b吗?',a!=b) #True
'''一个 = 称为赋值运算符, ==称为比较运算符
一个标量由三部分组成,标识,类型,值
==比较的是值
比较对象的标识使用 is'''
a=10
b=10
print(a==b) #True 说明a与b的value值相等
print(a is b) #True 说明a与b的id标识相等
print(a,id(a),b,id(b))
print('----布尔运算符----')
print('----and并且----')
a,b=1,2
print(a==1 and b==2) #True True and True-->True
print(a==1 and b<2) #False True and False-->False
print(a!=1 and b==2) #False False and True-->False
print(a!=1 and b!=2) #False False and False-->False
print('----or或者----')
print(a==1 or b==2) #True True or True-->True
print(a==1 or b<2) #False True or False-->True
print(a!=1 or b==2) #False False or True-->True
print(a!=1 or b!=2) #False False or False-->False
print('----not对bool类型操作数取反----')
s1=True
s2=False
print(not s1)
print(not s2)
print('----in和not in----')
s='hello,world'
print('w' in s)
print('l' not in s)
'''位运算符
将数据转化成二进制进行计算
位与& 对应数位都是1,结果数位才是1,否则为0
位或| 对应数位都是0,结果数位才是0,否则为1
左移位运算符 高位溢出舍弃,低位补0
右移位运算符 低位溢出舍弃,高位补0'''
print('----位运算符----')
print(4&8) #按位与&,同为1时结果为1
print(4|8) #按位或|,同为0时结果为0
print(4<<1) #向左移动1位(移动一个位置)相当于乘2
print(4<<2) #向左移动2位(移动两个位置)相当于乘4
print(4>>1) #向右移动1位(移动一个位置)相当于除2
print(4>>2) #向右移动2位(移动两个位置)相当于除4
'''运算符的优先级
()-->算数运算符-->位运算符-->比较运算符-->布尔运算符-->赋值运算符'''