为什么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。