在日常编码中使用它?我正在使用this tutorial学习Python。我所指的是here(页面中间),但我无法得到它。我理解使用True和False的原则,但是在编写代码时我实际上在实践中实际使用bool()
函数时没有得到。如果您在代码中提供bool()
的日常实用示例,它将对我有所帮助。
答案 0 :(得分:16)
它允许您将任何Python值转换为布尔值。
有时您希望存储True
或False
,具体取决于另一个Python对象。而不是:
if python_object:
result = True
else:
result = False
你只是这样做:
result = bool(python_object)
如何将 Python对象转换为布尔值,所有这些都取决于它们的truth value。一般来说,None
,数字0和空容器(空列表,字典,集合,元组,字符串等)都是False
,其余为True
。
只要需要显式布尔值,就可以使用它。假设您正在构建一个对象树,并且您希望包含一个方法,如果树中有子项,则返回True
:
class Tree(object):
def __init__(self, children):
self.children
def has_children(self):
return bool(self.children)
现在Tree().has_children()
会在True
不为空时返回self.children
,否则会返回False
。
答案 1 :(得分:4)
要理解bool()的作用,我们首先要了解布尔值的概念。
在大多数编程语言中,布尔变量由二进制的0或1表示。 A 1表示“True”,0表示“False”
在某些方面,数字1与布尔值True不同。例如,请使用以下代码:
>>> 1 is True
False
请注意,根据Python,1与True不同。但是:
>>> bool(1) is True
True
当我们在这里使用bool()函数时,我们将1转换为布尔值。这种转换称为“铸造”。将1转换为布尔值会返回值“True”。
大多数对象都可以强制转换为布尔值。根据我的经验,除非它是0,None,False或空迭代(例如:“”,[]或{}),否则您应该期望每个标准对象都计算为True。举个例子:
>>> bool({})
False
>>> bool({"":False})
True
>>> bool(None)
False
>>> bool("")
False
>>> bool("hello")
True
>>> bool(500)
True
>>> bool(0)
False
>>> bool(False)
False
最后,布尔值打印为“True”或“False”
>>> print bool(1)
True
答案 2 :(得分:3)
bool
暴露了这样一个事实:Python允许对你通常认为不是True或False的东西进行布尔转换。
这方面的一个例子就是列表。如果len(my_list)
大于0,则会将其视为True
。如果它没有长度 - 如果len()
将返回0 - 它是False
。这使您可以编写如下代码:
def check_list_for_values(my_list, value):
return [x for x in my_list if x == value]
your_list = [5, 6, 7, 8, 9, 5, 3, 4, 8]
if check_list_for_values(3, your_list):
print "got a match"
如果check_list_for_values
返回长度大于0的列表,则会打印“得到匹配”,因为它的计算结果为True
。如果列表没有长度可以返回......
your_list = [5, 6, 7, 8, 9, 5, 3, 4, 8]
if check_list_for_values('elephant', your_list):
print "got a match"
然后就不会打印任何内容,因为它的评估结果为False
。
答案 3 :(得分:-1)
将值转换为布尔值。