擅长:python、mysql、java
<p><code>hpRed</code>和<code>hpBlue</code>(至少在一个地方拼错了)变量是在模块(“global”)级别定义的。函数内部的名称是函数局部名称,除非显式地将它们指定给全局变量,否则这些名称不能看到全局变量。应该是这样的:</p>
<pre><code>def attack():
global hpRed, hpBlue
# rest of your function
</code></pre>
<p>虽然您可以简单地使用全局变量来实现这一点,但这不是一个很好的实践。我建议将该值传递给任何需要它的函数,或者将它放入一个类中,以便类的方法可以对其进行操作。在</p>
^{pr2}$
<p>您可能注意到我更改了您的<code>return</code>语句。您编写的内容将无法按您希望的方式工作:一旦您<code>return</code>,您就不能从同一个方法调用中再次{<cd3>}(该行为更像是<code>generator</code>)。如果你想同时返回新的红色血量和蓝色血量,请返回一个包含它们的元组。在</p>
<p>这段代码也有一些其他问题,例如,您从未实际更改全局变量,并且如果您在<code>while</code>循环中放入<code>print</code>调用,这样就可以看到hp是如何变化的,这样您就省去了一些麻烦。在</p>