在Python中为布尔值
Python实际上是否包含一个布尔值? 我知道你可以这样做:
checker = 1 if checker: #dostuff
但我很迂腐,喜欢在Java中看布尔值。 例如:
Boolean checker; if (someDecision) { checker = true; } if(checker) { //some stuff }
Python中有这样的事情吗? 我似乎无法在文档中find类似的东西。
checker = None # not necessary if some_decision: checker = True if checker: # some stuff
[编辑]
有关更多信息: http : //docs.python.org/library/functions.html#bool
您的代码也可以工作,因为1在必要时被转换为True。 实际上,Python长时间没有布尔types(就像在老C中一样),有些程序员使用整数而不是布尔值。
布尔内build值是大写: True
和False
。
还要注意,你可以使用checker = bool(some_decision)
来checker = bool(some_decision)
将只返回True
或False
。
知道将来的引用是很好的,根据这些函数的结果, 定义__nonzero__
或__len__
类将是True
或False
,但实质上每个其他对象的布尔结果都将是True
(除了None
对象,空序列和数字零) 。
True
…和False
显然。
否则, None
评估为False,整数0
和浮点数0.0
(尽pipe我不会使用像这样的浮点数)。 此外,空列表[]
,空连音符()
和空string''
或""
评估为False。
用函数bool()
自己尝试一下:
bool([]) bool(['a value']) bool('') bool('A string') bool(True) # ;-) bool(False) bool(0) bool(None) bool(0.0) bool(1)
等等..
布尔types在文档中定义:
http://docs.python.org/library/stdtypes.html#boolean-values
从doc引用:
布尔值是两个常量对象False和True。 它们被用来表示真值(尽pipe其他值也可以被认为是虚假的)。 在数字上下文中(例如,当用作算术运算符的参数时),它们的行为分别与整数0和1相同。 如果该值可以被解释为一个真值(参见上面的真值testing部分),那么可以使用内build函数bool()来将任何值转换为布尔值。
它们分别被写为False和True。
所以在Java代码中删除花括号,改为true
,你会没事的:)
是的,有一个bool
数据types(从int
inheritance,只有两个值: True
和False
)。
但是,对于每个对象,Python都有boolean-able
概念,当调用函数bool([x])
时,会使用这个概念。
查看更多: object。 在Python中 非零和布尔值的对象 。
不像Java,你会声明boolean flag = True
,在Python中你可以声明myFlag = True
Python会将其解释为一个布尔variables