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