bool()函數是Python的一個內建函數,其作用是對傳遞的對象或值參數進行標準的真值檢測并返回一個布爾值(True / False)。
bool( [x] )
該函數的參數 x 是一個可選參數,其可以是一個對象、某個具體的值或其它表達式。
該函數返回值有兩個:True 或者 False。當檢測為真時返回True,否則返回False.
在Python中,任何對象都可以進行真值檢測,這主要用于 if 或 while 條件中。
如果一個對象中定義了__bool__()函數,其結果依賴于該函數的返回值情況;或者對象中定義了__len__()函數,其返回值為0時,其返回False,否則返回True。如果對象中未定義這兩個函數,都視為 True.
任何數值類型的0都會返回False:0, 0.0, 0j, Decimal(0), Fraction(0, 1);
任何空的序列值或空的集合都返回False:'', (), [], {}, set(), range(0)——分別為空字符串,空的元組,空的列表,空的字典,空的集合和空范圍。
值為 False 或 None 的量都會返回False。
下面的例子說明bool()函數用于數字類型的輸出情況。
from fractions import Fraction
from decimal import Decimal
#變量
v1 = 55
v2 = 0
print("bool(v1):",bool(v1))
print("bool(v2):",bool(v2))
#浮點類型float
print("bool(0.00001):", bool(0.00001))
print("bool(0.0):", bool(0.0))
#復數complex
print("bool(12+34j):",bool(12+34j))
print("bool(0j):", bool(0j))
#十六進制
print("bool(0xF):", bool(0xF))
print("bool(0x0):", bool(0x0))
#表達式
print("bool(43 - 3):",bool(43 - 3))
print("bool(43 - 43):", bool(43 - 43))
#精確小數與分數
print("bool(Decimal(0.0)):", bool(Decimal(0.0)))
print("bool(Decimal(0.001)):", bool(Decimal(0.001)))
print("bool(Fraction(1, 123)):",bool(Fraction(1, 123)))
print("bool(Fraction(0, 123)):", bool(Fraction(0, 123)))
輸出結果:
bool(v1): True
bool(v2): False
bool(0.00001): True
bool(0.0): False
bool(12+34j): True
bool(0j): False
bool(0xF): True
bool(0x0): False
bool(43 - 3): True
bool(43 - 43): False
bool(Decimal(0.0)): False
bool(Decimal(0.001)): True
bool(Fraction(1, 4)): True
bool(Fraction(0, 4)): False
str1 = "Python"
print(bool(str1))
str2 = ""
print(bool(str2))
str3 = "False"
print(bool(str3))
str4 = "0"
print(bool(str4))
輸出結果:
True
False
True
True
f1 = True
print(bool(f1))
f2 = False
print(bool(f2))
f3 = None
print(bool(f3))
輸出結果:
True
False
False
list1 = ["R","Python","SPSS"]
list2 = []
print(bool(list1))
print(bool(list2))
t1 = ("R","Python","SPSS")
t2 = ()
print(bool(t1))
print(bool(t2))
d1 = {"L1":"R","L2":"Python"}
d2 = {}
print(bool(d1))
print(bool(d2))
s1 = set(["R","Python","Java"])
s2 = set()
print(bool(s1))
print(bool(s2))
輸出結果:
True
False
True
False
True
False
True
False
當對象中定義了__bool__()函數時,其返回值由__bool__()函數決定,當未定義__bool__()函數而定義了__len__()函數時,其值由__len__()函數決定。
class Student():
age = 0
def __init__(self,age):
self.age = age
def __bool__(self):
return bool(self.age)
class People():
name = ''
def __len__(self):
return len(self.name)
s1 = Student(0)
print(bool(s1))
s2 = Student(20)
s2.age = 20
print(bool(s2))
s3 = People()
print(bool(s3))
s4 = People()
s4.name="優雅"
print(bool(s4))
輸出結果如下:
False
True
False
True
以上講解了Python 內置函數bool()函數的使用方法,如有問題歡迎留言。
新聞熱點
疑難解答