代碼
print(3 and 4 and 5) # 5
print(5 and 6 or 7) # 6
4 > 3 and print(‘hello world’) # 輸出hello world
注釋:
在邏輯運算中,不一定邏輯運算符的兩邊都是純表達式。也可以是數(shù)值類型的數(shù)據(jù)。
Python把0、空字符串和None看成 False,
其他數(shù)值和非空字符串都看成 True,所以:
① 在計算 a and b 時,如果 a 是 False,則根據(jù)與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。
print(3 and 4) # 4
print(0 and 1) # 0
人話:
吃一個蘋果,分兩半 a b , a是壞的 False,有蟲子,那 整個就是壞的 False。不用再看b了,反正不會吃了。出來的結果:就是a。
如果 a 是好的,那就看看b是不是好的,也得看完之后再吃不是? 因為只剩下另一半b,b是好的或者壞的,最終以b為準,就等b的結果:就是b。
其實和人的邏輯是一樣的。
② 在計算 a or b 時,如果 a 是 True,則根據(jù)或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。 所以Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果。
print(6 or 7) # 6
print(6 and 7 or 8) # 7文章來源:http://www.zghlxwxcb.cn/news/detail-724646.html
人話:
買1個蘋果, 就有 a 和 b 兩個蘋果了 ,我可以選個,任何一個都可以, a是好的,那我就可以買了a蘋果,b蘋果好壞都行,反正有一個是好的,夠吃了-------那我不貪心,就買 a 了。如果 a 是壞的,那我可以多個選擇,看看b ,最終我買不買蘋果,取決于b ,b 是好的,就要b, b如果也是壞的,那我 a b 兩個都不要了,就可以判定:這個水果店,是壞的False,因為是最后通過b的好壞判定的,所以返回b,讓別人知道為什么我判定這個水果店是壞的False。文章來源地址http://www.zghlxwxcb.cn/news/detail-724646.html
到了這里,關于python--短路運算,把0、空字符串和None看成 False,其他數(shù)值和非空字符串都看成 True的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!