#逻辑运算
'''
1.and 逻辑与运算
2.or 逻辑或运算
3.not 逻辑非运算
xor逻辑异或运算 [相同为假,不同为真](python不支持)'''
# 逻辑与运算 (2个布尔值之间的运算[有假则假]
'''
True + True ==> True
True + False ==> False
False +False ==> False
'''
var1 = True
var2 = False
rst = var1 and var2
print(rst)
#逻辑或运算 [有真则真]
'''
True + True ==> True
True + False ==> True
False +False ==> False
'''
var1 = False
var2 = True
rst = var1 or var2
print(rst)
#逻辑非运算(1个布尔值的运算
'''
True ==> False
False ==> True'''
var = True
rst = not var
print(rst)
#位运算,二进制基础上的逻辑运算
'''
1. & 按位与 2. | 按位或 3. ~ 按位非 4. ^ 按位异或 5. >> 右移 6.<< 左移
'''
#按位与运算
var1 = 15 #01111
var2 = 19 #10011
rst = var1 & var2
print(rst) #00011
#按位或运算
var1 = 15 #1111
var2 = 9 #1001
rst = var1 |var2
print(rst) #1111
#按位非运算
var = 26
rst = ~var
print(rst) #结果var加1,变复数
#按位异或运算 相同为假,不同为真
var1 = 15 #1111
var2 = 9 #1001
rst = var1 ^ var2
print(rst) #0110
#左移运算(左移几位相当于乘以2的n次方
var = 3
rst = var << 3
print(rst)
#右移运算(右移几位相当于地板除2的n次方
var = 80
rst = var>>6
print(rst)
#成员运算 检测某个数据是否在制定的容器中
'''
in 检测数据值都在容器中
not in 检测数据值不再容器中
'''
#字符串
var = 'tfboys'
rst = 't' in var
print(rst)
rst = 't' not in var
print(rst)
#列表,元组,集合
var = ['貂蝉','西施','杨玉环','王昭君']
var = ('元组','字典','集合')
var = {'貂蝉','西施','毕业'}
rst = '貂蝉' in var
print(rst)
rst = '貂蝉' not in var
print(rst)
#字典[字典进行成员检测是检测键而非值]
var = {'1':'var','2':'san'}
rst = '1' in var
print(rst)
rst = '1' not in var
print(rst)
rst = 'var' in var
print(rst)
rst = 'var' not in var
print(rst)
#身份检测运算
'''
is 检测两个变量是使用同一个id
is not 检测两个变量不是使用同一个id
'''
#is 检测id标识是否一至
'''
以下规律仅对当前版本Python 负责。
1.对于字符串而言,只要字符串的值相同,那么对应的id标识一定相同
2.对于整数而言,-5到正无穷都是相同的id标识,其他的不是。
3.对于浮点数而言,非负数的变量id标识在值相同的情况下是相同的
4.对于布尔值相同的情况下,id标识一定相同。
5.复数的id标识都不相同
6.列表,元组,字典,集合无论什么情况id标识都不同,空元组的id标志。
'''
var1 = [1,2,3]
var2 = [1,2,3]
rst = var1 is var2
print(rst)
print(id(var1))
print(id(var2))
var1 = {}
var2 = {}
rst = var1 is not var2
print(rst)
print(id(var1))
print(id(var2))
#type() 用于获取数据类型的功能(开发中不推荐使用)
#isinstance() 检测数据是否指定的数据类型
var = ()
#格式:isinstance(数据,类型)
'''
int
float
bool
complex
list
tuple
dict
set
'''
rst = isinstance(var,list)
print(rst)
#运算优先级
'''
运算的先后顺序就是运算的优先级
'''