python中的與或非詳解
阿新 • • 發佈:2020-10-20
python中的邏輯判斷與或非和其他語言的邏輯判斷結果有一點不同,這一不小心就讓中了招,有時候迷惑為什麼結果與預測的結果大相徑庭,既然是吃飯的手段,還是要認真的專研一下,以免出去讓人看了笑話。
先來一組對比:
java中的邏輯運算:
可見java中的邏輯運算只可以用於條件之間的判斷,如果邏輯運算子的前後不是條件表示式,則會報錯,如下圖無法通過語法檢測,且邏輯運算的結果為true或者false,是一個Boolean值
python中的邏輯運算
python就比java要花裡胡哨了,首先符號就不相同
一般邏輯符號 | python中的邏輯符號 |
---|---|
&& | and |
|| | or |
! | not |
這裡展示一下python中邏輯運算子號運用
邏輯運算表示式 | 結果展示 |
---|---|
邏輯與運算: | |
3>2 and 3>1 | True |
3 and 2 | 2 |
3>2 and 3>1 and 2 | 2 |
3 and 2>3 | False |
0 and None | 0 |
邏輯或運算: | |
3>2 or 3>1 | True |
3>2 or 2 | True |
2 or 3>2 | 2 |
3 or 4 | 3 |
0 or None | None |
邏輯非運算 | |
not 3 | False |
not 0 | True |
從上面表可以看出:python的邏輯運算可以同時運算條件表示式和值
(1)and: 結果為真時,返回最右邊的表示式,如果最右邊為條件表示式,則返回True,如果右邊為值時,返回值。
結果為假時,返回第一個假,如果第一個假中是條件表示式,則返回False,如果是值,返回值
如果兩邊都是假,則返回最後一個假,如果是條件表示式,返回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 None | None |
並不是返回False,沒少在這上面踩坑,我都服了,原以為這不過是一個簡單的知識點,沒想到裡面還大有文章,從了以前學java的慣性思維了。
學習是不能自滿的,天下難事比起於易。