<p>检查空字符串变量是否填充了某些字符时,表达式的计算结果始终为true。如果新创建的字符串值为空,则应为false,它不包含任何字符,更不用说检查的字符了。在</p>
<p>当我硬编码一个随机字符时,如果它不是正在检查表达式的字符,则计算结果为false。在</p>
<pre><code>difficulty = ''
while difficulty not in 'EMH':
print('Enter difficulty: E - Easy, M - Medium, H - Hard')
difficulty = input().upper()
</code></pre>
<p>我希望看到调试器进入while循环。实际发生的是它继续通过while块而不执行。在</p>
<p>我想你需要的是一个列表,而不是一个字符串:</p>
<pre><code>difficulty = ''
while difficulty not in ['E','M','H']:
print('Enter difficulty: E - Easy, M - Medium, H - Hard')
difficulty = input().upper()
</code></pre>