Python的Boolean操作

來源:互聯網
上載者:User

在Python中,任何類型的對象都可以做真值測試,並且保證返回True或者False。

以下幾種值(不論類型)在真值測試中返回False:

1.None

2.False

3.任何類型的數字0,包括0,0.0,0L,0j

4.空的序列(sequence)或者映射(mapping)類型對象

5.對於使用者自訂類型的對象,如果其類定義了__nonzero__() 或者 __len__()特殊方法並且返回False或者0

對於最後一條規則,有幾點需要說明:

1.如果類沒有定義這兩個方法中的任何一個,則這種類型的對象真值測試時總是為True

2.如果類同時定義了__nonzero__() 和 __len__(),只會參考__nonzero__()的傳回值

Boolean操作符的特性(直接copy文檔而來):

x or y: if x is false, then y, else x

x and y: if x is false, then x, else y

not x: if x is false, then True, else False

1.注意and和or操作符的短路特性

2.not運算子要麼返回True要麼返回False

3.and和or運算子的傳回值不限於True和False,它只是對x或者y做真值測試,然後返回其中一個的值(注意不是其真值)

程式碼範例:

 

s = ''s = s or 'default value'print s

 

運行結果是:

default value

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.