"in" 运算符的优先级是什么?
What is the precedence of the "in" operator?
今天在这个Python程序中遇到了困难:
a = [False, True]
x = True in a in a
y = True in a in [a]
z = True in a in (a)
print(x, y, z)
这段代码的输出是
False True False
怎么可能?
让我们在这里测试 x
:
x = True in a in a
True in [False, True]
是 True
,True in [False, True]
又是 True
。
所以x
应该是True
。但是当我 运行 程序时它说 False
.
现在让我们从右到左:
x = True in a in a
[False, True] in [False, True]
是 False
,所以现在 True in False
可能是类型错误或其他错误。
你能解释一下吗?
Python 链接某些运算符,包括 in
.
这个:
True in a in [a]
表示
(True in a) and (a in [a])
所以如果 a
等于 [False,True]
,则表达式为真。
其他版本:
True in a in a
True in a in (a)
彼此等价。将 (a)
括起来不会改变其类型或值。
两者的意思都是(True in a) and (a in a)
,所以除非a
包含自己,否则它们都是假的。
今天在这个Python程序中遇到了困难:
a = [False, True]
x = True in a in a
y = True in a in [a]
z = True in a in (a)
print(x, y, z)
这段代码的输出是
False True False
怎么可能?
让我们在这里测试 x
:
x = True in a in a
True in [False, True]
是 True
,True in [False, True]
又是 True
。
所以x
应该是True
。但是当我 运行 程序时它说 False
.
现在让我们从右到左:
x = True in a in a
[False, True] in [False, True]
是 False
,所以现在 True in False
可能是类型错误或其他错误。
你能解释一下吗?
Python 链接某些运算符,包括 in
.
这个:
True in a in [a]
表示
(True in a) and (a in [a])
所以如果 a
等于 [False,True]
,则表达式为真。
其他版本:
True in a in a
True in a in (a)
彼此等价。将 (a)
括起来不会改变其类型或值。
两者的意思都是(True in a) and (a in a)
,所以除非a
包含自己,否则它们都是假的。