请解释我打印(真>假)和打印(假>真)



我写了一个代码

print(False>True)
print(True>False)

结果是

False
True

有人能告诉我发生了什么事吗

在Python中,当在大于/小于比较中使用布尔值时,它们会自动被视为数字,因此True变成1False变成0。替换它们,答案变得显而易见:

print(0 > 1)
print(1 > 0)

第一个校验是False,第二个校验是True

布尔值也是整数,并且具有整数值:

>>> type(False)
<class 'bool'>
>>> bool.mro()  # base classes include integer
[<class 'bool'>, <class 'int'>, <class 'object'>]
>>> int(False)
0
>>> int(True)
1

因此,False(0(是而不是大于True(1(,True(1。

您基本上是在打印0(False(是否大于1(True(,这是False,然后第二条语句的值反之亦然

布尔结果总是为False返回0或False,为True 返回1或True

来源:Py-Doc

为了更清晰:

>>> False
False
>>> False>True
False
>>> 0>1
False
>>> True>False
True
>>> 1>0
True

相关内容

  • 没有找到相关文章

最新更新