擅长:python、mysql、java
<p>任何字符串中都存在空字符串。因此,当<code>difficulty</code>等于<code>''</code>时,条件<code>difficulty not in 'EMH'</code>将计算为<code>False</code>;因此while循环的主体不会被执行。在</p>
<pre><code>In [24]: '' not in 'EMH'
Out[24]: False
In [33]: '' in 'EMH'
Out[33]: True
</code></pre>
<p>一个更好的方法可能是通过<code>list('EMH')</code>将字符串<code>EMH</code>转换为列表,这样<code>EM</code>或{<cd8>}之类的东西不会打断循环,或者从一开始就避免它开始</p>
<p>同样,正如@Blckknght建议的那样,更好的选择是使用默认值<code>None</code>来解决困难。在</p>
^{pr2}$