如何在Python中使用布尔值?
Python里面真的有布尔值吗?我知道你可以这样做:
checker = 1
if checker:
#dostuff
但是我比较较真,喜欢在Java里看到布尔值。例如:
Boolean checker;
if (someDecision)
{
checker = true;
}
if(checker)
{
//some stuff
}
在Python里有没有布尔这个东西?我在文档里好像找不到相关的内容。
7 个回答
12
True
(真)和 False
(假)是显而易见的。
除此之外,None
(无)也被认为是假,整数 0
和浮点数 0.0
也是(不过我不建议用浮点数这样表示)。还有,空列表 []
、空元组 ()
和空字符串 ''
或 ""
也都被认为是假。
你可以自己试试 bool()
这个函数:
bool([])
bool(['a value'])
bool('')
bool('A string')
bool(True) # ;-)
bool(False)
bool(0)
bool(None)
bool(0.0)
bool(1)
等等……
95
布尔值的内置类型是大写的:True
和 False
。
另外,你可以用 checker = bool(some_decision)
这种简写方式来表示,bool
这个函数只会返回 True
或 False
。
为了将来方便了解,知道一下:定义了 __nonzero__
或 __len__
的类 会根据这些函数的结果返回 True
或 False
,但几乎所有其他对象的布尔值结果都是 True
(除了 None
对象、空序列和数字零)。
155
checker = None
if some_decision:
checker = True
if checker:
# some stuff
[编辑]
更多信息请查看: http://docs.python.org/library/functions.html#bool
你的代码也能正常工作,因为在需要的时候,1
会被转换成True
。实际上,Python很长一段时间没有布尔类型(就像老版的C语言一样),所以有些程序员仍然使用整数来代替布尔值。