Python 中 and, or, &, |, ^ 的使用小結(jié)
在Python中,0,“”,[],(),{},None,F(xiàn)alse為假值,其余為真值。
and 和 or
and
布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。or
布爾"或" - 如果 x 是非 0,它返回 x 的計算值,否則它返回 y 的計算值。
其中and
和or
還有以下運算規(guī)律:
- and和or返回的是比較的值
- and的優(yōu)先級大于or
- 多個and的話,如果全為真,則返回最后一個值。如果其中有一個為假,則返回該假值
- 多個or的話,如果有一個為真,則返回第一個真值。 如果全為假,則返回最后一個假值
例子:
11 and 12 and 13 # 13 [] and 3 # [] None and 3 # 沒有輸出(None) 3 and 5 or 2 # 5 20 or False # 20 (3 < 2) and 5 # False (3 > 2) and 5 or 1 # 5 (3 < 2) and 5 or 1 # 1 1 and 2 and 0 and 4 and False # 0 1 and 2 and True and 4 and 6 # 6 0 or False or '' or 8 or 1 # 8 [] or 0 or '' or None or () # ()
如果有not
,優(yōu)先級更高:not
>and
>or
例子:
x=1 #將x賦值為1
y=0 #將y賦值為0
z=0 #將z賦值為0
print(x or y and not z) # 1
- 由于優(yōu)先級是not>and>or,所以首先執(zhí)行not z(也就是not 0),即 not 0 = not False =True =1
- 下一步是輪到了and,那么 y and 1(已知y=0)即 0 and 1,也就是False and True(假與真),我們剛剛談過and,一假即假,故y and 1 = 0 and 1 = False = 0
- 最后一步按優(yōu)先級是輪到or,即x or 0(已知x=1),即1 or 0 =True or Flase =True = 1(or即“或”中,一真即真)
所以輸出結(jié)果為 1。
總結(jié): 代碼運算過程為:(用數(shù)學(xué)符號表示優(yōu)先級)
{ x or [ y and (not z) ] }
&,|,^
如果兩邊是數(shù)值變量時:
&
按位與運算符:參與運算的兩個值,如果對應(yīng)二個二進位都為1,則該位的結(jié)果為1,否則為0。|
按位或運算符:只要對應(yīng)的二個二進位有一個為1時,結(jié)果位就為1。^
按位異或運算符:當(dāng)兩對應(yīng)的二進位相異時,結(jié)果為1。
例子:
a = 3 & 5 # a = 1 (011 and 101 = 001)
b = 6 ^ 2 # b = 4 (110 xor 010 = 100)
c = 4 | 3 # c = 7 (100 or 011 = 111)
兩邊是邏輯變量時
如果兩邊是邏輯變量時,則兩類的用法基本一致.
例子:
(3>0) | (3<1) # True (3>0) or (3<1) # True (3>0) & (3<1) # False (3>0) and (3<1) # False
到此這篇關(guān)于Python 中 and, or, &, |, ^ 的使用的文章就介紹到這了,更多相關(guān)Python and, or, &, |, ^ 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+logging+yaml實現(xiàn)日志分割
這篇文章主要為大家詳細介紹了python+logging+yaml實現(xiàn)日志分割,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07python dataframe向下向上填充,fillna和ffill的方法
今天小編就為大家分享一篇python dataframe向下向上填充,fillna和ffill的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法詳解
這篇文章主要介紹了VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法,較為詳細的分析了VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的具體步驟、相關(guān)命令與操作注意事項,需要的朋友可以參考下2019-07-07python圖像處理基本操作總結(jié)(PIL庫、Matplotlib及Numpy)
這篇文章主要給大家介紹了關(guān)于python圖像處理基本操作的相關(guān)資料,主要利用的是PIL庫、Matplotlib及Numpy等處理方法,需要的朋友可以參考下2021-06-06