如何在Python中使用布尔值?

118 投票
7 回答
678591 浏览
提问于 2025-04-15 16:06

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

布尔值的内置类型是大写的:TrueFalse

另外,你可以用 checker = bool(some_decision) 这种简写方式来表示,bool 这个函数只会返回 TrueFalse

为了将来方便了解,知道一下:定义了 __nonzero____len__ 的类 会根据这些函数的结果返回 TrueFalse,但几乎所有其他对象的布尔值结果都是 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语言一样),所以有些程序员仍然使用整数来代替布尔值。

撰写回答