Python中not、and、or的優先級


優先級: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM