擅长:python、mysql、java
<p>注意,您有两个名为<code>player1location</code>的变量,其中一个在第一行(在任何函数之外)全局定义为<em>,第二个在每次调用函数时在本地创建为<em>。尽管它们的名称相同,但它们在python中是两个不同的变量,因为它们是在<a href="http://www.saltycrane.com/blog/2008/01/python-variable-scope-notes/" rel="nofollow">different scopes</a>中定义的。</p>
<p>有几种方法可以解决这个问题。</p>
<p>您可以从函数定义中删除<code>player1location</code>,然后您将始终更改全局范围的变量。但是,根据命名约定,我猜您也希望将该函数重新用于其他播放器(尽管尝试它仍然不会有什么坏处,可以帮助您理解它是如何工作的)。</p>
<p>更好的方法可能是在函数结束时返回新的播放器位置(<code>return player1location</code>),然后在返回时将其分配给全局范围的位置(<code>player1location = turn(numberPlayers, player, player1location, Board)</code>)。</p>