02 逻辑运算补充(面试重点,开发了解)

02 逻辑运算补充(面试重点,开发了解)

一、逻辑运算之优先级运算

优先级

  • 括号 > not > and > or

条件语句:由全and、或全or连接

  • 条件语句的单一连接情况,按照从左到右的顺序依次计算
print(True and 10 > 3 and not 4 < 3 and 1 == 1) # True
print(False or 10 < 3 or not 4 < 3 or 1 == 1)   # True

条件语句:混合连用

  • 混合连接的语句,先计算not,再以and为中心,把左右紧连的两个条件用括号括起来,剩下就只剩or语句,顺序就是单纯的从左到右了
res = 10 == 9 and 0 < 3 or '' == 'egon' and 0> 3 or not True or 'egon' == 'dsb' and 333 > 100 or 10 > 4

# 先计算not
res = 10 == 9 and 0 < 3 or '' == 'egon' and 0 > 3 or False or 'egon' == 'dsb' and 333 > 100 or 10 > 4

# 再以and为中心,把左右紧连的两个条件用括号括起来
res = (10 == 9 and 0 < 3) or ('' == 'egon' and 0 > 3) or False or ('egon' == 'dsb' and 333 > 100) or 10 > 4
res = 

二、逻辑运算之短路运算

显/隐式布尔类型

  • 显示布尔值:True,False

  • 隐式布尔值(表示False): 0、None、空([],{},set(),(),'')

  • 所有的数据类型的值都自带布尔值,所以值可以直接当成条件使用

    # 示范一
    if 111 and 123:
        print('ok')
    else:
        print('no')
    
    # 示范二
    x = ''
    if x:
        print('不为空')
    else:
        print("为空")

偷懒原则

  • and的偷懒原则:当紧连的左边的条件值为False,右边的条件将不会进行计算。

  • or的偷懒原则: 当紧连的左边的条件值为True,右边的条件将不会进行计算。

  • and或or两边连接的条件,也能进行变量的赋值操作

  • 根据偷懒原则:and和or的运算会返回当前计算位置的值

    # and偷懒
    result1 = 0 and 123
    print(result1)  # 0
    
    # and不偷懒
    result2 = 111 and 123
    print(result2)  # 123
    
    # or偷懒
    result1 = 111 or 123
    print(result1)  # 111
    
    # or不偷懒
    result2 = 0 or 123
    print(result2)  # 123

猜你喜欢

转载自www.cnblogs.com/yang1333/p/12346900.html
02