優先級:not > and > or
1、not與緊跟其后的那個條件是不可分割的
2、如果條件語句全部由純and、或純or鏈接,按照從左到右的順序依次計算即可
print(True and 10 > 3 and not 4 < 3 and 1 == 1) print(False or 10 < 3 or not 4 < 3 or 1 == 1)
3、對於既有and又有or鏈接的語句,以and為中心把左右兩個條件用括號括起來
res=(10 == 9 and 0 < 3) or ('' == 'egon' and 0> 3) or not True or ('egon' == 'dsb' and 333 > 100) or 10 > 4 print(res)
2、短路運算=>偷懶原則
所有的數據類型的值都自帶布爾值,所以值可以直接被當成條件使用
0、None、空三種值對應的布爾值為False,其余全為True
#代碼 if 0: print('ok') else: print('=====>') //執行結果 =====> #代碼 if 3 and []: print('真') else: print('假') //執行結果 假
##and運算會返回當前計算位置的值
res=0 and 123 print(res) #==>0 res=111 and 123 print(res) #==>123 if 111 and 123: #==>ok print('ok') else: print('no') x='' if x: #==>為空 print('不為空') else: print("為空")
##其他例子
print(1 or 0) # 1
print(0 and 2 or 1) # 1
print(0 and 2 or 1 or 4) # 1