在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值是大写: TrueFalse

还要注意,你可以使用checker = bool(some_decision)checker = bool(some_decision)将只返回TrueFalse

知道将来的引用是很好的,根据这些函数的结果, 定义__nonzero____len__类将是TrueFalse ,但实质上每个其他对象的布尔结果都将是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(从intinheritance,只有两个值: TrueFalse )。

但是,对于每个对象,Python都有boolean-able概念,当调用函数bool([x])时,会使用这个概念。

查看更多: object。 在Python中 非零和布尔值的对象 。

不像Java,你会声明boolean flag = True ,在Python中你可以声明myFlag = True

Python会将其解释为一个布尔variables