Python 未定义已定义的变量
我正在进行一次文本冒险来学习Python。我尝试创建一个战斗引擎,遇到了一个问题,错误是我没有定义一个真正定义的变量。附件是战斗引擎代码,然后我将发布我收到的错误:Python 未定义已定义的变量,python,variables,import,nameerror,Python,Variables,Import,Nameerror,我正在进行一次文本冒险来学习Python。我尝试创建一个战斗引擎,遇到了一个问题,错误是我没有定义一个真正定义的变量。附件是战斗引擎代码,然后我将发布我收到的错误: import random import time import sys player_health = 100 enemy_health = random.randint(50,120) def monster_damage(): global player_health global enemy_health
import random
import time
import sys
player_health = 100
enemy_health = random.randint(50,120)
def monster_damage():
global player_health
global enemy_health
mon_dmg = random.randint(5, 25)
enemy_health -= mon_dmg
print('You hit the beast for ' + str(mon_dmg) + ' damage! Which brings its health to ' + str(enemy_health))
if enemy_health < 0:
print('You have vanquished the beast and saved our Chimichongas')
win == True
time.sleep(10)
else:
player_dmg()
def player_dmg():
global player_health
global enemy_health
pla_dmg = random.randint(5, 15)
player_health -= pla_dmg
print(
'The beast strikes out for ' + str(pla_dmg) + ' damage to you. This leaves you with ' + str(player_health))
if player_health > 0 and enemy_health > 0:
player_turn()
elif player_health <= 0:
print('The beast has vanquished you!')
win == False
time.sleep(10)
sys.exit()
def run_away():
run_chance = random.randint(1, 10)
if run_chance > 5:
print('You escape the beast!')
time.sleep(10)
sys.exit()
else:
print('You try to run and fail!')
player_dmg()
def player_turn():
print('Your Turn:')
print('Your Health: ' + str(player_health) + ' Monsters Health: ' + str(enemy_health))
print('What is your next action?')
print('Please Select 1 to attack or 2 to run.')
action = int(input())
if action == 1:
monster_damage()
elif action == 2:
run_away()
def battle_start():
player_turn()
battle_start()
随机导入
导入时间
导入系统
玩家健康=100
敌方生命=随机。随机(50120)
def怪物_伤害():
全球玩家健康
全球健康
mon_dmg=random.randint(5,25)
敌方生命值-=mon\U dmg
打印('你击中野兽造成'+str(mon_-dmg)+'伤害!使其生命值为'+str(敌人生命值))
如果敌方健康状况<0:
print(‘你打败了野兽,拯救了我们的奇米洪加斯’)
赢=真
时间。睡眠(10)
其他:
玩家_dmg()
def player_dmg():
全球玩家健康
全球健康
pla_dmg=random.randint(5,15)
玩家健康-=pla\U dmg
印刷品(
野兽对你造成“+str(pla_-dmg)+”伤害。这会给你“+str(player_-health))
如果玩家生命值>0且敌人生命值>0:
玩家_回合()
elif player_health 5:
打印('你逃出野兽!')
时间。睡眠(10)
sys.exit()
其他:
打印('您尝试运行但失败!')
玩家_dmg()
def player_turn():
打印('轮到你了:')
打印('你的生命:'+str(玩家生命)+'怪物生命:'+str(敌人生命))
打印('下一步行动是什么?')
打印('请选择1进行攻击或选择2运行')
action=int(输入())
如果操作==1:
怪物伤害()
elif操作==2:
逃跑
def battle_start():
玩家_回合()
战斗开始
错误是:
Traceback (most recent call last):
File "C:/Users/rhood/Documents/python_files/game/rps_exp.py", line 15, in <module>
game()
File "C:\Users\rhood\Documents\python_files\game\main_game.py", line 25, in game
battle()
File "C:\Users\rhood\Documents\python_files\game\battle.py", line 63, in battle
battle_start()
File "C:\Users\rhood\Documents\python_files\game\battle.py", line 61, in battle_start
player_turn()
File "C:\Users\rhood\Documents\python_files\game\battle.py", line 56, in player_turn
monster_damage()
File "C:\Users\rhood\Documents\python_files\game\battle.py", line 14, in monster_damage
enemy_health -= mon_dmg
NameError: name 'enemy_health' is not defined
回溯(最近一次呼叫最后一次):
文件“C:/Users/hood/Documents/python\u files/game/rps\u exp.py”,第15行,在
游戏()
文件“C:\Users\Hood\Documents\python\u files\game\main\u game.py”,第25行,在游戏中
战斗()
文件“C:\Users\hood\Documents\python\u files\game\battle.py”,第63行,在战斗中
战斗开始
文件“C:\Users\hood\Documents\python\u files\game\battle.py”,第61行,在battle\u start中
玩家_回合()
文件“C:\Users\hood\Documents\python\u files\game\battle.py”,第56行,依次为player\u
怪物伤害()
文件“C:\Users\hood\Documents\python\u files\game\battle.py”,第14行,怪物伤害
敌方生命值-=mon\U dmg
NameError:未定义名称“敌方健康”
您只需导入sys
、random
和time
模块,并定义变量win
您没有在玩家回合
功能中添加全球敌人
“错误是说我没有定义一个确实定义的变量”-其中一个错误,我并不反对解释器。在导入随机代码后,代码似乎会运行。错误发生的位置和方式?在import sys
和import random
之后,此代码运行良好,至少在战斗结束时需要对win
进行评估之前。我已经导入了这些代码,但在输入代码时没有复制它们,我只是看到很抱歉,可能是我正在运行的IDE,这是一种魅力。今晚晚些时候,我将从另一个系统中尝试它,看看它是否会运行