【发布时间】:2014-10-18 04:55:41
【问题描述】:
这是我拥有的一个简单的 sn-p 代码:
>>> test = ['asas', 'asa12', 'sdsdsd12', 'vccvcvcv', 'rertrtt11']
>>> for i in test:
... if '11' in i:
... print i
...
rertrtt11
按预期工作。现在要捕获包含 11 或 12 的元素,我这样做:
>>> test = ['asas', 'asa12', 'sdsdsd12', 'vccvcvcv', 'rertrtt11']
>>> for i in test:
... if '11' or '12' in i:
... print i
...
asas
asa12
sdsdsd12
vccvcvcv
rertrtt11
这出乎意料。我希望只捕获其中包含 11 或 12 的元素,但输出包含所有元素。
在尝试进行故障排除时,我尝试了 and 运算符来尝试了解行为:
>>> test = ['asas', 'asa12', 'sdsdsd12', 'vccvcvcv', 'rertrtt11']
>>> for i in test:
... if '11' and '12' in i:
... print i
...
asa12
sdsdsd12
现在我完全糊涂了,因为我期待一个空集,因为其中没有包含 11 和 12 的元素。我对操作符在 python 中的功能的理解完全错误吗?
【问题讨论】:
标签: python if-statement operators