True和False的实际值是什么?它们是否真的根据语言而改变?

时间:2016-09-28 11:25:15

标签: python-3.x

根据我的知识,我总是记得布尔值是" 0" &false为" 1"。 但是当来到python时,

如果(0):     打印("真&#34)

输出是 无

有谁能告诉我这些值究竟是什么?

2 个答案:

答案 0 :(得分:0)

您可以在控制台中运行它......:

In [1]: True == 1
Out[1]: True

In [2]: False == 0
Out[2]: True

In [1]: int(True)
Out[1]: 1

In [2]: int(False)
Out[2]: 0

答案 1 :(得分:0)

在大多数语言中,如果True或False支持转换它们,则它们分别映射到1和0。 Python是其中一种语言(其他语言是PHP,ruby等)。某些语言(如Haskell或其他语言)将它们定义为无法转换的单独值,因此您不应依赖于基础表示。

您可以通过将TrueFalse投放到int

进行测试
$ python
> int(True)
1
> int(False)
0

你对0的看法很可能来自C / C ++。 C最初没有boolean值。因此人们返回整数。这些整数也编码错误值。为了得到多个错误值,你会说0是“一切正常”(= true),1或以上是不同的错误值。请注意,这些约定支持两种以上的状态(与布尔值不同)。