現(xiàn)在我們再來看最后一個邏輯運算符or。
or就是邏輯‘或’,它和前面講的邏輯‘與’剛好相反。and是只要有一個條件不成立,結(jié)果就不成立,or就是只要有一個條件成立,那結(jié)果就成立。
還是找女朋友為例,第一個條件改成dog,第二個條件改成male,最后一個條件不變還是19,然后我再打印一下,看最后結(jié)果是不是True。
好了,現(xiàn)在我們這三個邏輯運算符and、or、not都會用了,就是從前往后判斷嗎!那如果我們把這三個邏輯運算符混在一起用,應(yīng)該怎么判斷呢?到底是從前往后判斷,啥事先判斷not?先判斷and還是先判斷or?
其實這三個是有優(yōu)先級的,如果我們混用三個運算符,順序應(yīng)該是not>and>or。
我們來判斷上面的代碼是True還是False,首先我們把not用括號括起來,判斷里面是T還是F,先看22>22,就是F,但是前面加了not,那結(jié)果就是F了,反轉(zhuǎn)嗎!
然后我們再看,這行代碼還有沒有其他的not,沒有了的話就看下個優(yōu)先級,and。第一個84!=73,這個是True,沒什么說的。好第一個and我們判斷完了,只要有一個條件不成立那就是False,這里兩個條件都成立所以是True。
然后我們再看最后一個and,31==27,那這個結(jié)果就是False。前面我們說過,and有個偷懶原則,只要有一個False,后面就不會判斷直接判定為False。所以第二個and判斷為False。
后面18>20,這個我就不說了直接判斷為False。
最后我們來看整體,or判斷是只要有一個是True,那就判斷True,所以我們最后打印一下,看是不是True,結(jié)果就是True
這種混用的方式,對于讀代碼的人來說太復(fù)雜了,所以以后我們寫代碼盡量不要這樣混著寫。盡量寫成一串a(chǎn)nd連起來或者or連起來。
如果沒辦法了,一定要這樣混用,那么把括號用起來,自己看方便,別人看也方便。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 邏輯運算符or