说实话,我真的不确定是什么问题。我想做的是从敌军中减去attackdmg。据我所知,这都是正确的。我通过以下回溯不断收到错误消息:
<body>
我是python的新手,所以对不起
Traceback (most recent call last):
File "/tmp/sessions/95bd63b8a3cf1ead/main.py", line 71, in <module>
attack()
File "/tmp/sessions/95bd63b8a3cf1ead/main.py", line 46, in attack
enemyhp = enemyhp - attackdmg
UnboundLocalError: local variable 'enemyhp' referenced before assignment
本来应该只是将被攻击者从敌军身上夺走,但我真的不确定为什么会这样出错。
答案 0 :(得分:1)
使用全局变量具有“坏风格”的感觉……您需要告诉python您要修改 global enemyhp
:
der attack():
global enemyhp # you want to modify the global one
# ... rest of code...
如果忽略它,它将在本地函数范围内寻找enemyhp
并找不到它:因此是“在声明前使用”。
读取全局变量很好,您无法修改它们。
答案 1 :(得分:0)
您必须指定要在函数内部使用全局变量。
替换下一行
enemyhp = enemyhp - attackdmg
使用
global enemyhp
enemyhp = enemyhp - attackdmg