Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未定义已定义的变量_Python_Variables_Import_Nameerror - Fatal编程技术网

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

我正在进行一次文本冒险来学习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
    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,这是一种魅力。今晚晚些时候,我将从另一个系统中尝试它,看看它是否会运行