Python的Boolean操作


在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM