擅长:python、mysql、java
<p>问题在于:</p>
<pre><code>if str(correctLetters) in secretWord:
</code></pre>
<p>您可能希望<code>str(['a', 'b', 'c'])</code>返回'abc',但它没有。它返回<code>"['a', 'b', 'c']"</code>。
应将该行替换为:</p>
^{pr2}$
<p>您的代码还有一个问题,除了这个问题:
假设正确的单词是<code>foobar</code>。如果用户猜到前5个字母,但顺序相反,<code>correctLetters</code>将是<code>['a', 'b', 'o', 'o', 'f']</code>,而<code>if "".join(correctLetters) in secretWord:</code>将计算为<code>False</code>,因为<code>'aboof'</code>不在<code>'foobar'</code>中。在</p>
<p>您可以通过将<code>if "".join(correctLetters) in secretWord:</code>替换为:</p>
<pre><code>if len(correctLetters) > 4:
</code></pre>
<p>基本上,只要用户猜出5个正确的字母,程序的执行就会结束。不需要检查字母是否在<code>secretWord</code>中,因为已经在<code>userTurn</code>函数中进行了检查。在</p>