URLhttps://learnscript.net/zh-hant/python/data-types/boolean-types/
    複製連結移至說明  範例

    Python 布林型別 bool 使用說明

    閱讀 2:46·字數 830·發佈 
    Youtube 頻道
    訂閱 375

    Python 布林型別

    Python 的布林型別bool繼承自數值型別int,主要用於表示真(True)和假(False)兩種狀態,因此,從用途上看,布林型別和數值型別有很大區別。

    True,False 等價於 1,0

    既然boolint型別存在繼承關系,那麽True等價1False等價0的設計就是可以理解的。

    True == 1
    True
    0 == False
    True
    1 + True
    2

    不建議直接使用布林值參與算術運算

    通過上面的範例,我們看到運算式1+True可以得到預期結果2,但官方建議使用int建構子明確的轉換布林值,原運算式最好書寫為1+int(True)。是的,這是一種更為穩妥的方法,以防止意外的發生。

    數值型別

    要想了解 Python 數值型別,你可以檢視Python 數值型別 int,float,complex 使用說明一節。

    建立 Python 布林值

    除了直接書寫常值TrueFalse,你還可以使用bool型別的建構子,建立一個布林值。

    bool([x], /)

    x 參數

    x參數表示用於建立布林值的物件,如果未指定則布林值為False

    bool()
    False
    bool(1.23)
    True
    bool('')
    False

    將 Python 物件轉換為布林值

    一個物件可以被隱含的轉換為布林值,這會發生在使用bool建構子,或物件作為ifwhile陳述式的判斷依據時。

    隱含轉換工作由物件的__bool__方法完成,該方法傳回TrueFalse,對應了隱含轉換的結果。如果__bool__方法不存在,那麽將根據__len__方法的傳回值決定轉換結果,__len__傳回0對應False,傳回其他值對應True。如果__len__方法也不存在,那麽物件將轉換為True

    在 Python 中,None,等價於0的數值,長度為0的序列或集合物件,都將被視為False。比如,0+0j(){}

    Python 物件的 __bool__ 和 __len__ 方法

    物件的__bool__方法,傳回物件對應的布林值。物件的__len__方法,傳回物件的長度資訊。

    字串 'True' 和 'False' 都將被轉換為布林值 True

    字串是一種序列型別,__len__方法決定了他將轉換為哪種布林值。由於'True''False'的長度都大於0,因此他們都將轉換為True

    bool('False')
    True
    bool(())
    False