#Python中常用的运算符
#算数运算符
#赋值运算符
#比较运算符
#布尔运算符
#位运算符
#算术运算符 --> 标准算术运算符、取余运算符、幂运算符
# 标准运算符 --> 加+减-乘*除/整除//
# 取余运算符 --> %
# 幂运算符 --> **
################################
print(1+1)#加法运算
print(1-1)#减法运算
print(2*4)#乘法运算
print(11/2)#除法运算
print(11//2)#结果5,整除运算
print(11%2)#取余运算
print(2**3)#表示2的3次方
################################
###########################
#一正一负的取余和整除
print(9//4)#结果2
print(-9//-4)#结果2
print(-9//4)#结果-3, 一正一负的整除,向下取整
print(9//-4)#结果-3
print(9%-4)#结果-3 公式 --> 余数=被除数-除数*商 9-(-4)*(-3)
print(-9%4)#结果3 -9-4*(-3)
############################
#赋值运算符 --> 运算顺序从右往左
# 支持链式赋值 --> a=b=c=20
# 支持参数赋值 --> += -= *= /= //= %=
# 支持系列解包赋值 --> a,b,c=20,30,40
###########################
i=3+4
print(i)
a=b=c=20#链式赋值
print(a,b,c)
a=20
###########################
a+=30#a=a+30, a+30赋值给a
print(a)
a-=10#a=a-10
print(a)
a*=2#a=a*2
print(a,type(a))#int
a/=3#a=a/3
print(a,type(a))#float
a//=2#a=a//2
print(a,type(a))
a%=3#a=a%3
print(a,type(a))
#############################
a,b,c=20,30,40
print(a,b,c)
#例子,交换两个变量的值
a,b=10,20
print('交换之前',a,b)
a,b=b,a
print('交换之后',a,b)
##############
#比较运算符 --> 对变量或表达式的结果进行大小、真假等比较
#比较运算符的结果为bool类型
# >, <, >=, <=,!=
# == -->对象值(value)的比较
# is, is not --> 对象id的比较
##################################
a,b=10,20
print('a>b吗',a>b)#False
print('a<b吗',a<b)#True
print('a>=b吗',a>=b)
print('a<=b吗',a<=b)
print('a==b吗',a==b)
print('a!=b吗',a!=b)
########################
#一个变量由三部分组成,标识,类型,值
#== 比较的是值(value)
#比较对象的标识使用 is
a=10
b=10
print(a==b)#True 说明a与b的值(value)相等
print(a is b)#True 说明a与b的标识(id)相等
lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lst1==lst2)
print(lst1 is lst2)
print(id(lst1))
print(id(lst2))
################################
#bool运算符 --> and,or,not,in,not in
#and --> 两个运算数都为True时,运算结果才为True
#or --> 只要有一个为True,运算结果就为True
#not --> 如果运算数为True,则运算结果为False
# 如果运算数为False,则运算结果为True即取反
###############################
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(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
f=True
f2=False
print(not f)#not对bool类型的操作数取反
print(not f2)
####################
s='helloworld'
print('w' in s)
print('k' in s)
print('w' not in s)
print('k' not in s)
#######################
#位运算符 --> 位与& 对应位数都是1,结果才是1
# 位或| 对应位数都是0,结果才是0,否则为1
# 左移运算符<< 高位溢出舍弃,低位补0
# 右移运算符>> 低位溢出舍弃,高位补0
#4的2进制 00000100
#8的2进制 00001000
#4&8 00000000 结果为0
#4|8 00001100 结果为1*2**3+1*2**2=12
#4左移一位 (高位舍弃) 000000100(低位补0)结果为8 向左移动一位相当于乘2**1
#4左移一位 (高位舍弃) 000000100(低位补0)结果为16 向左移动位相当于乘2**2
#4右移一位 (高位补0) 00000100(低位舍弃) 结果为2 向左移动一位相当于除以2**1
print(4&8)#按位与,按位即对应位置操作,同为1时结果为1
print(4|8)#按位或,同为0时才为0,或只要有一个1就为1
print(4<<1)#左移1位
print(4<<2)#左移2位
print(4>>1)
print(4>>3)
#运算符的优先级
######################################
#** --> *,/,//,% --> +,- --> <<,>> --> & --> | --> >,<,>=,<=,==,!= --> and-->or-->=
#算数运算符-->位运算-->比较运算-->bool运算-->赋值
#有括号先算括号
#先算乘除后算加减有幂运算先算幂
|