首页 > 开发 > Python > 正文

Python bool()函数

2023-04-24 19:21:40
字体:
来源:转载
供稿:网友

bool()函数是Python的一个内建函数,其作用是对传递的对象或值参数进行标准的真值检测并返回一个布尔值(True / False)。

bool()的语法格式

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。

Python bool()函数

bool()函数示例

1、用于数值

下面的例子说明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

2、bool()函数用于字符串

str1 = "Python"
print(bool(str1))
str2 = ""
print(bool(str2))
str3 = "False"
print(bool(str3))
str4 = "0"
print(bool(str4))

输出结果:

True
False
True
True

3、bool()函数用于布尔值和None值

f1 = True
print(bool(f1))
f2 = False
print(bool(f2))
f3 = None
print(bool(f3))

输出结果:

True
False
False

4、bool()函数用于序列对象和集合对象

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

5、bool()函数与自定义对象

当对象中定义了__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()函数的使用方法,如有问题欢迎留言。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表