zoukankan      html  css  js  c++  java
  • 03 身份运算符、逻辑运算符

    # ### 身份运算符 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  var2
    var1 = 6j
    var2 = 6j
    res = var1 is not 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 not var2)
     
     
    # ### 逻辑运算符 and or not 
    print("<===>")
    # 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 
     
     
    #数据类型判断 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,str,list)))
    

      

  • 相关阅读:
    Beyond Compare同步功能简介
    CorelDRAW中如何制作表格
    如何解决CorelDRAW中尖突问题
    LCS 最长公共子序列
    Java容器部分用法
    数论知识简易总结
    操作系统的运行环境 中断与有异常
    OS的发展和分类
    操作系统的基本概念
    搭建神经网络的八股
  • 原文地址:https://www.cnblogs.com/eliwen/p/10968240.html
Copyright © 2011-2022 走看看