1. 程式人生 > 實用技巧 >python中的與或非詳解

python中的與或非詳解

python中的邏輯判斷與或非和其他語言的邏輯判斷結果有一點不同,這一不小心就讓中了招,有時候迷惑為什麼結果與預測的結果大相徑庭,既然是吃飯的手段,還是要認真的專研一下,以免出去讓人看了笑話。

先來一組對比:

java中的邏輯運算:

在這裡插入圖片描述
可見java中的邏輯運算只可以用於條件之間的判斷,如果邏輯運算子的前後不是條件表示式,則會報錯,如下圖無法通過語法檢測,且邏輯運算的結果為true或者false,是一個Boolean值 在這裡插入圖片描述

python中的邏輯運算

python就比java要花裡胡哨了,首先符號就不相同

一般邏輯符號python中的邏輯符號
&&and
||or
!not

這裡展示一下python中邏輯運算子號運用

邏輯運算表示式結果展示
邏輯與運算:
3>2 and 3>1True
3 and 22
3>2 and 3>1 and 22
3 and 2>3False
0 and None0
邏輯或運算:
3>2 or 3>1True
3>2 or 2True
2 or 3>22
3 or 43
0 or NoneNone
邏輯非運算
not 3False
not 0True

從上面表可以看出:python的邏輯運算可以同時運算條件表示式和值

(1)and: 結果為真時,返回最右邊的表示式,如果最右邊為條件表示式,則返回True,如果右邊為值時,返回值。
結果為假時,返回第一個假,如果第一個假中是條件表示式,則返回False,如果是值,返回值

(2)or :返回遇到的第一個真值,如果是條件表示式,返回True,如果是值,返回值。
如果兩邊都是假,則返回最後一個假,如果是條件表示式,返回False,如果是值,返回值。

總之:
(1)and的返回結果:從左到右,如果結果為真,返回最後一個真;如果結果為假,返回第一個假
(2)or的返回結果:從左到右,如果結果為真,返回遇到的第一個真值;如果結果為假,返回最後一個假值

python中為False的一些值:

(1)一切0:0,0.0,0.000
(2)空值:[],{},()
(3)None
以上這些是值型別,並不是條件表示式,所以雖然結果為False,但是返回為其本身,即返回值

例如:
邏輯運算結果
0 or [ ][ ]
0 and [ ]0
0 or NoneNone

並不是返回False,沒少在這上面踩坑,我都服了,原以為這不過是一個簡單的知識點,沒想到裡面還大有文章,從了以前學java的慣性思維了。
學習是不能自滿的,天下難事比起於易。