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()函数的使用方法,如有问题欢迎留言。
新闻热点
疑难解答