码迷,mamicode.com
首页 > 其他好文 > 详细

身份运算符和逻辑运算符

时间:2019-04-13 13:39:12      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:依次   内存占用   字符   逻辑或   类型   list   优先   5.5   数学   

# ### 身份运算符 is | is not 检测两个数据在内存中是否是同一个地址

‘‘‘
仅仅限定在3.6版本之前 是变量的缓存 ,
判断一个值在某个范围内存在,就不会再另外创建一个相同的值,为了节省内存空间
3.7之后不再划定范围,只要有一份就缓存
提出小数据池 或者变量缓存是为了提升代码执行的效率,减少内存占用空间
‘‘‘
# 整型 -5 ~ 正无穷
var1 = 19
var2 = 19
res = var1 is var2
print(res)

# 浮点型 非负数
var1 = -5.52
var2 = -5.52
res = var1 is not var2
print(res)

# 复数 在实数 + 虚数这样的结构中永远不一样 但如果只有虚数 在值相同情况下一样
var1 = 3 + 4j
var2 = 3 + 4j
res = var1 is not var2
print(res)
var1 = 6j
var2 = 6j
res = var1 is var2
print(res)

# bool 在布尔值相同的情况下 id一样
var1 = True
var2 = True
res = var1 is var2
print(res)


# 容器类型数据地址判断

# str 字符串而言,字符串值相同情况下,id一致
var1 = ""
var2 = ""
print(var1 is var2)

# 元组的类型,不一样
var1 = (1,23)
var2 = (1,23)
print(var1 is var2)
# 但空元组例外
var1 = ()
var2 = ()
print(var1 is var2)

# 剩下的容器类型数据无论什么值都不一样
var1 = [1,2]
var2 = [1,2]
print(var1 is var2)

# ### 逻辑运算符 and or not
# and 逻辑与
‘‘‘小明写作业:数学和英语都写完叫写完‘‘‘
"""***** 全真则真 一假则假"""
res  = True and  True
res = True and False
res = False and True
res = False and False
print(res)

# or  逻辑或
"""妈妈奖励小明:说有一门考及格了,我就给你买布加迪威龙"""
‘‘‘***** 全假则假 一真则真‘‘‘
res = True or True
res = True or False
res = False or True
res = False or False
print(res)

# not 逻辑非(相当于取反)
res = not True
res = not False
print(res)

# 逻辑短路
"""
一个or或者一个and 情况下
(1)True or something
(2)False and something
"""

print("<===>")
False or print(123)
True and print(456)

# 逻辑优先级
# () > not > and > or
res = 5 or 6 and 7
res = (5 or 6) and 7 # 5 and 7
res = not (5 or 6) and 7 # not 5 and 7 => False and 7 => False
print(res) # 5 or 7

res = 1<2 and 3>4 or 5<6 # True and False or True => False or True
res = 1<2 and 3>4 or 5>6 and 7<8 or 9>10 # True and False or False and True or False =>False or False or False => False or False => False
print(res)

# 这种情况特殊,上来直接短路,后面的不用再按照and or 优先级算了 (例外)
res = 5 or 6 and 7 or 8 and 9 or 10
# 如果上来直接是假,不一定结果也是假,要依次向后计算
# False and True or True

print("<====>")
#数据类型判断 isinstance
"""
int float bool complex str list tuple set dict

isinstance(要判断类型的数据,(类型1,类型2,类型3......))
如果在类型元组当中,返回真
如果不在类型元组当中,返回假
"""
intvar  = 15
print(isinstance(intvar,int))
strvar = "789"
print(isinstance(strvar,(int,list,tuple)))

 

身份运算符和逻辑运算符

标签:依次   内存占用   字符   逻辑或   类型   list   优先   5.5   数学   

原文地址:https://www.cnblogs.com/eliwen/p/10700785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!