python中的逻辑运算符

逻辑运算符

Posted by 张振 on April 19, 2019

前言

python中的算数运算符,赋值运算符大家都比较熟悉,这里说一下逻辑运算符

逻辑运算符

python中也支持逻辑运算,但python中逻辑运算符的功能与其它语言有所不同. python中分别使用’or’, ‘and’, ‘not’这三个单词作为逻运算’或’, ‘与’, ‘非’的运算符,其中or与and为双目运算符,not为单目运算符. 逻辑运算符的操作数可以为表达式或对象,下面将对它们的功能分别进行说明

  1. or 若or运算符左操作数的布尔值为True,则返回左操作数,否则返回右操作数或其计算结果(若为表达式),示例如下:
     >>> 0 or 3+5                  # 左操作数布尔值为False
     8
     >>> 3 or []                   # 做操作数布尔值为True
     3
    
  2. and 若左操作数的布尔值为False,则返回左操作数或其计算结果(若为表达式),否则返回右操作数的执行结果,示例如下: ```py

    3-3 and 5 0 3-4 and 5 5

  3. not 若操作数的布尔值为False则返回True,否则返回False,示例如下:
     >>> not (3-5)
     False
     >>> not(False)
     True
    

    逻辑运算符的优先级

    not > and > or 默认情况下,运算符的优先级决定了复杂表达式中的那个单一表达式先执行,但用户可以使用圆括号"()"改变表达式的执行顺序. 运算符一般按照自左向右的顺序结合

    >>> 0 and 3 or 4  # 可以理解为 0 * 3 + 4 这样.先判断前一部分,然后和后一部分操作
    4
    >>> 0 and 3 or 4 and 5  # 0*3 + 4*5
    5
    >>> 0 and 3 or 4 and 5 or 6  # 0*3 + 4*5 + 6
    5
    >>> 0 and 3 or 4 and 5 or 6 and 7  # 0*3 + 4*5 + 6*7
    5