gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:17:56 34 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why in Python does "0, 0 == (0, 0)" equal "(0, False)"?

(7 个回答)


去年关闭。




代码片段 1:

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

print(a == b)

返回 True .

代码片段2:
(True, True, True) == True, True, True

返回 (False, True, True) .

最佳答案

Operator precedence .您实际上是在检查 (True, True, True) 之间的相等性和 True在您的第二个代码片段中,然后以该结果作为第一项构建一个元组。

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

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

代码片段 2 也不异常(exception)。您正在尝试使用相同的语法构建一个元组,碰巧第一个元素是 (True, True, True) == True ,第二个元素是 True ,第三个元素是 True .

所以代码片段 2 相当于:
(((True, True, True) == True), True, True)
(True, True, True) == True为 False(您在此处将三个对象的元组与 bool 值进行比较),则第一个元素变为 False。

关于python - 为什么 `(True, True, True) == True, True, True` 在 Python 中不是 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61492879/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com