擅长:python、mysql、java
<p>线路</p>
<pre><code>if attributes['Class'] != "Warrior" or "Mage" or "Ranger" or "Thief":
</code></pre>
<p>将始终解析为<code>True</code>,因为<code>bool("Mare") == True</code>所以循环永远不会中断</p>
<p>我认为你要找的是更接近于:</p>
<pre><code>if attributes['Class'] not in ("Warrior", "Mage", "Ranger", "Thief"):
</code></pre>
<p>如果您只是想检查<code>attributes['Class']</code>的值,那么下面的循环可能更合适:</p>
<pre><code>while attributes['Class'] not in ("Warrior", "Mage", "Ranger", "Thief"):
attributes['Class'] = raw_input('Please choose either Warrior, Mage, Ranger or Thief.')
</code></pre>