Python 中 and, or, &, |, ^ 的使用小結(jié)
在Python中,0,“”,[],(),{},None,F(xiàn)alse為假值,其余為真值。
and 和 or
and
布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計(jì)算值。or
布爾"或" - 如果 x 是非 0,它返回 x 的計(jì)算值,否則它返回 y 的計(jì)算值。
其中and
和or
還有以下運(yùn)算規(guī)律:
- and和or返回的是比較的值
- and的優(yōu)先級(jí)大于or
- 多個(gè)and的話,如果全為真,則返回最后一個(gè)值。如果其中有一個(gè)為假,則返回該假值
- 多個(gè)or的話,如果有一個(gè)為真,則返回第一個(gè)真值。 如果全為假,則返回最后一個(gè)假值
例子:
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)先級(jí)更高: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)先級(jí)是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)先級(jí)是輪到or,即x or 0(已知x=1),即1 or 0 =True or Flase =True = 1(or即“或”中,一真即真)
所以輸出結(jié)果為 1。
總結(jié): 代碼運(yùn)算過程為:(用數(shù)學(xué)符號(hào)表示優(yōu)先級(jí))
{ x or [ y and (not z) ] }
&,|,^
如果兩邊是數(shù)值變量時(shí):
&
按位與運(yùn)算符:參與運(yùn)算的兩個(gè)值,如果對(duì)應(yīng)二個(gè)二進(jìn)位都為1,則該位的結(jié)果為1,否則為0。|
按位或運(yùn)算符:只要對(duì)應(yīng)的二個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1。^
按位異或運(yùn)算符:當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí),結(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)
兩邊是邏輯變量時(shí)
如果兩邊是邏輯變量時(shí),則兩類的用法基本一致.
例子:
(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python中邏輯與或(and、or)和按位與或異或(&、|、^)區(qū)別
- python中and和or邏輯運(yùn)算符的用法示例
- python中not、and和or的優(yōu)先級(jí)與詳細(xì)用法介紹
- 解決Python 異常TypeError: cannot concatenate ''str'' and ''int'' objects
- 淺談Python中(&,|)和(and,or)之間的區(qū)別
- python and or用法詳解
- Python中的random.uniform()函數(shù)教程與實(shí)例解析
- python實(shí)現(xiàn)隨機(jī)森林random forest的原理及方法
相關(guān)文章
python+logging+yaml實(shí)現(xiàn)日志分割
這篇文章主要為大家詳細(xì)介紹了python+logging+yaml實(shí)現(xiàn)日志分割,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07python dataframe向下向上填充,fillna和ffill的方法
今天小編就為大家分享一篇python dataframe向下向上填充,fillna和ffill的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python中使用gzip模塊壓縮文件的簡(jiǎn)單教程
這篇文章主要介紹了Python中使用gzip模塊壓縮文件的簡(jiǎn)單教程,本文的例子主要針對(duì)類UNIXZ系統(tǒng),需要的朋友可以參考下2015-04-04VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法詳解
這篇文章主要介紹了VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法,較為詳細(xì)的分析了VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的具體步驟、相關(guān)命令與操作注意事項(xiàng),需要的朋友可以參考下2019-07-07opencv3/C++ 平面對(duì)象識(shí)別&透視變換方式
今天小編就為大家分享一篇opencv3/C++ 平面對(duì)象識(shí)別&透視變換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12python圖像處理基本操作總結(jié)(PIL庫(kù)、Matplotlib及Numpy)
這篇文章主要給大家介紹了關(guān)于python圖像處理基本操作的相關(guān)資料,主要利用的是PIL庫(kù)、Matplotlib及Numpy等處理方法,需要的朋友可以參考下2021-06-06