擅长:python、mysql、java
<p>我们只关注if语句</p>
<pre><code>if c!='x' or c!='X':
</code></pre>
<p>这是一个包含两个项的布尔表达式</p>
<ul>
<li><code>c != 'x'</code>和</li>
<li><code>c != 'X'</code></li>
</ul>
<p>当您使用<code>or</code>运算符时,如果任一项的计算结果为True,则整个表达式的计算结果为True。如果表达式的计算结果为True,则执行<code>if</code>语句的主体(在本例中为<code>return True</code>)。在</p>
<p>这是<code>or</code>表达式(A或B)的标准真值表</p>
^{pr2}$
<p>如您所见,结果是<code>False</code><strong>只有在这两个条件都为False时</strong></p>
<p>让我们看看表达式如何计算每种类型的输入</p>
<pre><code>c | c != 'x' | c != 'X' | or expression |
'x' | False | True | True |
'X' | True | False | True |
any other character | True | True | True |
</code></pre>
<p>简而言之,您的表达式将始终求值为True,并且始终采用<code>if</code>分支。在</p>
<p>因此,当函数检查提供的字符串中的第一个字符时,<code>return True</code>。在</p>
<p>此函数返回False的唯一方法是</p>
<ul>
<li>如果提供了<code>str</code>以外的内容</li>
<li>如果提供空字符串-因为从未输入<code>for</code>循环。在</li>
</ul>