Muh*_*šić 11 python boolean python-2.7
什么时候用于日常编码?我正在使用本教程学习Python .我在这里描述的是什么(页面中间),但我无法理解.我理解使用True和False的原则,但是bool()
在编写代码时我实际上在实践中实际使用函数时没有得到.如果你bool()
在代码中给出日常的实际例子,它会对我有所帮助.
Mar*_*ers 22
它允许您将任何Python值转换为布尔值.
有时您想要存储True
或False
依赖于另一个Python对象.代替:
if python_object:
result = True
else:
result = False
Run Code Online (Sandbox Code Playgroud)
你只是这样做:
result = bool(python_object)
Run Code Online (Sandbox Code Playgroud)
Python对象如何转换为布尔值,所有这些都取决于它们的真值.一般来说None
,数字0和空容器(空列表,字典,集合,元组,字符串等)都是False
,其余的都是True
.
只要需要显式的布尔值,就可以使用它.假设您正在构建一个对象树,并且您希望包含一个方法,该方法True
在树中有子项时返回:
class Tree(object):
def __init__(self, children):
self.children
def has_children(self):
return bool(self.children)
Run Code Online (Sandbox Code Playgroud)
现在Tree().has_children()
将True
在self.children
不为空时返回,False
否则.
要了解什么bool(),我们需要首先了解布尔的概念。
在大多数编程语言中,布尔变量用二进制0或1表示。1代表“ True”,0代表“ False”
数字1在某些方面不同于布尔值True。例如,使用以下代码:
>>> 1 is True
False
Run Code Online (Sandbox Code Playgroud)
请注意,根据Python,1与True不同。然而:
>>> bool(1) is True
True
Run Code Online (Sandbox Code Playgroud)
当在此处使用bool()函数时,会将1转换为布尔值。这种转换称为“广播”。将1强制转换为布尔值将返回“ True”的值。
大多数对象可以强制转换为布尔值。根据我的经验,您应该期望每个标准对象的评估结果都为True,除非它为0,None,False或空的可迭代值(例如:“”,[]或{})。因此,例如:
>>> bool({})
False
>>> bool({"":False})
True
>>> bool(None)
False
>>> bool("")
False
>>> bool("hello")
True
>>> bool(500)
True
>>> bool(0)
False
>>> bool(False)
False
Run Code Online (Sandbox Code Playgroud)
最后,布尔值打印为“ True”或“ False”
>>> print bool(1)
True
Run Code Online (Sandbox Code Playgroud)