Python里and、or的計算規(guī)則

引子:

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、白堿灘網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為白堿灘等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

Python 里 and、or 的計算規(guī)則

出現(xiàn)以上情況的原因是什么呢?

bool('') == False bool(0) == False

所有變量的位操作都是通過強制轉(zhuǎn)換成bool實現(xiàn)的,并且表達(dá)式的值是從左到右第一個能夠確定表達(dá)式的值的變量。

例如 (‘’ or 5 or 0)==(False or True or False),當(dāng)遇到第一個True的時候,表達(dá)式的值等于True這個變量(5)的值,并且不會再去管后面是什么,所以返回5.

1. 在純and語句中,如果每一個表達(dá)式都不是假的話,那么返回最后一個,因為需要一直匹配直到最后一個。如果有一個是假,那么返回假

2. 在純or語句中,只要有一個表達(dá)式不是假的話,那么就返回這個表達(dá)式的值。只有所有都是假,才返回假

3. 在or和and語句比較難表達(dá),總而言之,碰到and就往后匹配,碰到or如果or左邊的為真,那么就返回or左邊的那個值,如果or左邊為假,繼續(xù)匹配or右邊的參數(shù)。

(False?or 1) ?輸出1

? (1 or False) ? ?輸出1

(True?or 1)輸出前者

? (1 or True) ? 輸出前者

(True?and 1) 輸出后者

? (1 and True) ? ?輸出后者

(False?and 1)輸出False

? (1 and False) ?輸出False

對python而言

其一, 在不加括號時候,?and優(yōu)先級大于or

其二, x or y 的值只可能是x或y. x為真就是x, x為假就是y

第三, x and y 的值只可能是x或y. x為真就是y, x為假就是x

顯然,

對于, 1 or 5 and 4: 先算5 and 4, 5為真, 值為4. 再算1 or 4, 1 為真,值為1

對于, (1 or 5) and 4: 先算1 or 5, 1為真, 值為1. 再算1 and 4, 1為真,值為4

在Python中,空字符串為假,非空字符串為真。非零的數(shù)為真。

數(shù)字和字符串之間、字符串之間的邏輯操作規(guī)律是:

對于and操作符:

只要左邊的表達(dá)式為真,整個表達(dá)式返回的值是右邊表達(dá)式的值,否則,返回左邊表達(dá)式的值

對于or操作符:

只要兩邊的表達(dá)式為真,整個表達(dá)式的結(jié)果是左邊表達(dá)式的值。

如果是一真一假,返回真值表達(dá)式的值

如果兩個都是假,比如空值和0,返回的是右邊的值。(空值或0)

總結(jié)一句話就是:無論操作符是哪個,最后的結(jié)果一定是按照計算順序能最快判斷出結(jié)果的那個表達(dá)式?jīng)Q定的

舉例:

Python 里 and、or 的計算規(guī)則

分享文章:Python里and、or的計算規(guī)則
標(biāo)題網(wǎng)址:http://muchs.cn/article10/gedcgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站收錄微信小程序、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管