擅长:python、mysql、java
<p>你所拥有的相当于:</p>
<pre><code>if 'abc' or ('xyz' in self.line.lower()):
</code></pre>
<p>优先顺序表可以在这个Python <a href="https://docs.python.org/2/reference/expressions.html" rel="nofollow">documentation</a>中找到。在图表的底部,您将看到<code>in</code>比<code>or</code>(或<code>and</code>)具有更高的优先级,因此,<code>'xyz'</code>被检查在<code>self.line.lower()</code>中,然后结果是<code>or</code>与{<cd7>}进行了<code>or</code>。由于<code>'abc'</code>的计算结果为非零值,因此整个表达式始终为true。在</p>
<p>我能想到的一种方法是使用嵌套的<code>for in</code>,根据我们正在搜索的字符串查找目标列表中的项。在</p>
^{pr2}$
<p><code>x in line.lower() for x in ['abc', 'xyz']</code>生成将为每个元素返回true或false的生成器。使用<code>any</code>来判断生成的列表中是否有任何元素是<code>true</code>,这意味着至少找到了其中一个元素。如果您想检查字符串中是否找到了所有项,可以将<code>any</code>替换为<code>all</code>。在</p>