網(wǎng)站系統(tǒng)開(kāi)發(fā)畢業(yè)設(shè)計(jì)企業(yè)郵箱注冊(cè)
代碼
print(3 and 4 and 5) # 5
print(5 and 6 or 7) # 6
4 > 3 and print(‘hello world’) # 輸出hello world
注釋:
在邏輯運(yùn)算中,不一定邏輯運(yùn)算符的兩邊都是純表達(dá)式。也可以是數(shù)值類型的數(shù)據(jù)。
Python把0、空字符串和None看成 False,
其他數(shù)值和非空字符串都看成 True,所以:
① 在計(jì)算 a and b 時(shí),如果 a 是 False,則根據(jù)與運(yùn)算法則,整個(gè)結(jié)果必定為 False,因此返回 a;如果 a 是 True,則整個(gè)計(jì)算結(jié)果必定取決與 b,因此返回 b。
print(3 and 4) # 4
print(0 and 1) # 0
人話:
吃一個(gè)蘋(píng)果,分兩半 a b , a是壞的 False,有蟲(chóng)子,那 整個(gè)就是壞的 False。不用再看b了,反正不會(huì)吃了。出來(lái)的結(jié)果:就是a。
如果 a 是好的,那就看看b是不是好的,也得看完之后再吃不是? 因?yàn)橹皇O铝硪话隻,b是好的或者壞的,最終以b為準(zhǔn),就等b的結(jié)果:就是b。
其實(shí)和人的邏輯是一樣的。
② 在計(jì)算 a or b 時(shí),如果 a 是 True,則根據(jù)或運(yùn)算法則,整個(gè)計(jì)算結(jié)果必定為 True,因此返回 a;如果 a 是 False,則整個(gè)計(jì)算結(jié)果必定取決于 b,因此返回 b。 所以Python解釋器在做布爾運(yùn)算時(shí),只要能提前確定計(jì)算結(jié)果,它就不會(huì)往后算了,直接返回結(jié)果。
print(6 or 7) # 6
print(6 and 7 or 8) # 7
人話:
買1個(gè)蘋(píng)果, 就有 a 和 b 兩個(gè)蘋(píng)果了 ,我可以選個(gè),任何一個(gè)都可以, a是好的,那我就可以買了a蘋(píng)果,b蘋(píng)果好壞都行,反正有一個(gè)是好的,夠吃了-------那我不貪心,就買 a 了。如果 a 是壞的,那我可以多個(gè)選擇,看看b ,最終我買不買蘋(píng)果,取決于b ,b 是好的,就要b, b如果也是壞的,那我 a b 兩個(gè)都不要了,就可以判定:這個(gè)水果店,是壞的False。