为什么python3中的True,True,True==(True,True、True)会给出o/p True,True

  • 本文关键字:True python3 中的 python-3.x
  • 更新时间 :
  • 英文 :


为什么python3会产生这种输出我完全搞不懂

>>>True, True, True == (True, True, True)
True, True, False

我还检查了

>>>True == (True, True)
False

>>True == (True)
True

因为此表达式的求值方式如下:

True, True, (True == (True, True, True))

其中CCD_ 1变为CCD_。

>>> True, True, True == (True, True, True)
(True, True, False)
>>> (True, True, True) == (True, True, True)
True
>>> True, True, True == False
(True, True, False)
>>> 

您从来没有实际比较前两个值,因为您将3个单独的True与布尔值元组进行比较,并且只有旁边有==的最后一个True与多个布尔值元组类型进行比较。由于CCD_ 5不等于不同的类型。它有效地被评估为True == (True, True, True),并与之一起打印前两个True语句

类型:

>>> type(True)
<class 'bool'>
>>> type((True, True, True))
<class 'tuple'>
>>> 

因此,当你进行原始检查时,你实际上是在对最后一个True进行以下检查:

>>> type(True) == type((True, True, True))
False
>>> bool == tuple
False
>>> 

由于这些类型不相同,并且元组不是真的或假的,因此它解析为False。

最新更新