Kri*_*odu -1 python boolean-logic operators python-3.x
今天我在这个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)
Run Code Online (Sandbox Code Playgroud)
这段代码的输出是
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)
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
让我们在x
这里测试:
x = True in a in a
Run Code Online (Sandbox Code Playgroud)
True in [False, True]
是True
,又True in [False, True]
是True
。
所以x
应该是True
。但是当我运行程序时,它说False
。
现在让我们从右到左:
x = True in a in a
Run Code Online (Sandbox Code Playgroud)
[False, True] in [False, True]
is False
,所以现在True in False
可能是类型错误或其他一些错误。
你能解释一下吗?
Python 链接某些运算符,包括in
.
这个:
True in a in [a]
Run Code Online (Sandbox Code Playgroud)
方法
(True in a) and (a in [a])
Run Code Online (Sandbox Code Playgroud)
所以如果a
等于[False,True]
,则表达式为真。
其他版本:
True in a in a
True in a in (a)
Run Code Online (Sandbox Code Playgroud)
彼此等效。将括号放在周围(a)
不会改变它的类型或它的值。
两者都意味着(True in a) and (a in a)
,所以除非a
包含自身,否则它们是错误的。
归档时间: |
|
查看次数: |
75 次 |
最近记录: |