Python中的and和or

來源:互聯網
上載者:User

標籤:布爾   規律   強制轉換   結合   之間   body   決定   表達   總結   

引子:

print(‘‘ or 5 or 0)  # 5print(5 and 4)  # 4print(‘‘ or 5 or 0 and 4)  # 5

出現以上情況的原因是什麼呢?

print(bool(‘‘)) # Falseprint(bool(0)) # False
所有變數的位操作都是通過強制轉換成bool實現的,並且運算式的值是從左至右第一個能夠確定運算式的值的變數。再看一個布爾運算例子
print(False and True)  # Falseprint(False and False)  # Falseprint(True and True)  # Trueprint(True and False)  # Falseprint(False or True)  # Trueprint(False or False)  # Falseprint(True or True)  # Trueprint(True or False)  # True
結合三個例子來看:(‘’ or 5 or 0)==(False or True or False),當遇到第一個True的時候,運算式的值等於True這個變數(5)的值,並且不會再去管後面是什麼,所以返回5.1. 在純and語句中,如果每一個運算式都不是假的話,那麼返回最後一個,因為需要一直匹配直到最後一個。如果有一個是假,那麼返回假
2. 在純or語句中,只要有一個運算式不是假的話,那麼就返回這個運算式的值。只有所有都是假,才返回假
3. 在or和and語句比較難表達,總而言之,碰到and就往後匹配,碰到or如果or左邊的為真,那麼就返回or左邊的那個值,如果or左邊為假,繼續匹配or右邊的參數。

(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優先順序大於or

  and運算有假則取假,如果沒有假則取最後一個真(需要保證為真,則需要運算打最後一個真)

  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中,Null 字元串為假,非Null 字元串為真。非零的數為真。

數字和字串之間、字串之間的邏輯操作規律是:

對於and操作符:

  只要左邊的運算式為真,整個運算式返回的值是右邊運算式的值,否則,返回左邊運算式的值

對於or操作符:

  只要兩邊的運算式為真,整個運算式的結果是左邊運算式的值。

  如果是一真一假,返回真值運算式的值

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

總結一句話就是:無論操作符是哪個,最後的結果一定是按照計算順序能最快判斷出結果的那個運算式決定的

轉載自:https://www.cnblogs.com/huchong/p/7535542.html

Python中的and和or

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.