为什么在Python中`(True,True,True)== True,True,True`不是True?

A.Dg:

程式码片段1:

a = True, True, True
b = (True, True, True)

print(a == b)

返回True

代码段2:

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

返回(False, True, True)

特里:

运算符优先级你实际上检查平等之间(True, True, True),并True在你的第二个代码片断,然后建立一个元组与该结果作为第一个项目。

回想一下,在Python中,通过指定用逗号分隔的没有任何括号的项目“列表”,它返回一个元组:

>>> a = True, True, True
>>> print(type(a))
<class 'tuple'>
>>> print(a)
(True, True, True)

这里的代码片段2也不例外。您尝试使用相同的语法构建元组,恰好碰巧第一个元素是(True, True, True) == True,第二个元素是True,第三个元素是True

因此,代码段2等效于:

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

并且由于(True, True, True) == True为False(您在此将三个对象的元组与布尔值进行比较),因此第一个元素变为False。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么 Python3 中的 True, True, True == (True, True, True) 给出 o/p True, True, False?

如果不是true(!true)

为什么“ True and〜True” -2?

为什么lodash`_.all([true,true,true],true);`返回`false`?

javascript 中 true && true && true && false && true && true && true 的结果是什么?

为什么在Python 1.0中== 1 >>> True; -2.0 == -2 >>> True等?

为什么Boolean.ToString输出“ True”而不是“ true”

[True] 中的 [True] 中的 True 输出:False

谁能解释为什么True,True ==(True,True)的输出是(True,False)?

当 {a statement that is equal to True} == True 评估为 false 时,为什么 True == True 评估为 True?

为什么'$ true -eq“ string”'返回$ true?

序言:为什么是 true == not(not(true)) -> false?

为什么“ True or False”比“ False或True”要快?

布尔代数-为什么(True and False)True?

结合布尔掩码,为什么在 Python 中:[False, True] 和 [True, False] == [True, False]

布尔身份== True与True

布尔身份== True与True

为什么输出“ True”

为什么 Python 中的 `str(1) 不是 '1'` `True`?

为什么在Python 2中''> 0 True?

为什么strpos是!== false而不是true?

为什么cSplit返回TRUE而不是字符

我为什么要写!== false而不是== true?

为什么返回None而不是True或False?

Python不是True还是False

为什么“ true” == true在JavaScript中显示为false?

为什么“ [False,True]中的not(True)”返回False?

为什么在argparse中,“ True”始终为“ True”?

为什么!{} [true]在JavaScript中评估为true?