• PythonStudy——逻辑运算符 Logical Operators


    在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了  __ nonzero __ () 或 __ len __ () 方法且方法返回 0 或False,则其实例也被当作False,其他对象均为True。

    # 逻辑运算符运行结果:不一定是bool类型


    1. and
    # 左右都成立才成立,有不成立的就不成立

    res = 10 > 5 and 10 > 20
    print(res)
    
    Output: False
    res = 0 and 20 # and前为假,整个式子就可以确定为假了,and后就不需要执行(短路)
    print(res)

     2. or

    # 左右都不成立才不成立,有成立的就成立
    res = 10 < 5 or 10 > 20
    print(res)

    Output:
    False
    res = 10 or 20 # or前为真,整个式子就可以确定为真了,or后就不需要执行(短路)
    print(res)

    3. not

    #成立则不成立,不成立则成立

    print(not 10)
    print(not 0)

    Output:
    False
    True

    4. 包含两个及以上的逻辑运算符

      逻辑运算符 and / or 一旦不止一个,其运算规则的核心思想就是短路逻辑,我们就来了解一下短路思想:

      1 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。

      2 表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。

      3 若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。

    # # 了解:and 优先级高于 or

    res = 5 and 0 or 20 and 30  # 
    print(res)

    Output:
    30
  • 相关阅读:
    【阿里的感悟】质量该如何做? .(转载)
    java linux 配置环境
    Spring Bean属性绑定Bean返回值
    Spring BeanNameAutoProxyCreator 与 ProxyFactoryBean
    Spring Aop之(二)Aop 切面声明和通知
    Ubuntu开机自动启动Script
    转战博客园!
    linux 系统管理11 ——系统安全及应用
    linux awk
    Rsync数据同步工具
  • 原文地址:https://www.cnblogs.com/tingguoguoyo/p/10713245.html
Copyright © 2020-2023  润新知