Python 如何修复UnboundLocalError

Python 如何修复UnboundLocalError,python,Python,我正在用python制作一个游戏,出现以下错误: UnboundLocalError:赋值前引用的局部变量“playerY” 代码是: import voyager200librarys playerY = 1 playerX = 0 amountOfRows = 3 command = voyager200librarys.menu ("P Y C R A F T", ["Play", "Quit"]) if (command

我正在用python制作一个游戏,出现以下错误: UnboundLocalError:赋值前引用的局部变量“playerY”

代码是:

import voyager200librarys

playerY = 1
playerX = 0
amountOfRows = 3

command = voyager200librarys.menu ("P Y C R A F T", ["Play", "Quit"])

if (command == "Play"):
    world = [0,0,0,0,-1,0,1,1,1]

    def printWorld ():
        index = 0
        indexCheck = 0
        
        for x in range(len (world)):
            voyager200librarys.printWithoutNewLine (" ")
            
            if (world [index] == 0):
                voyager200librarys.printWithoutNewLine (" ")
            
            if (world [index] == 1):
                voyager200librarys.printWithoutNewLine ("D")
            
            if (world [index] == -1):
                voyager200librarys.printWithoutNewLine ("&")
            indexCheck += 1
            
            if (indexCheck == 3):
                print ("")
                indexCheck = 0
            
            index += 1
    
    def mainMenu ():
        print ("")
        whatToDo = voyager200librarys.menu ("What To Do?", ["Move"])
        
        if (whatToDo == "Move"):
            movementControls ()
    
    def movementControls ():
        print ("")
        print ("Movement Controls:")
        print ("<   >   Ʌ")
        print ("")
        print ("|   |   |")
        print ("V   V   V")
        print ("")
        print ("1   2   3")
        print ("")
        command = input ("Plase Pick An Option: ")
        
        command = int (command)
        
        if (command != 1):
            if (command != 2):
                if (command != 3):
                    print ("Plase Pick A Valid Option Next Time.")
        
        if (command == 1):
            world [playerY * amountOfRows + playerX] = 0 #(The problem occurs here) 
            playerX -= 1
        
        if (command == 2):
            world [playerY * amountOfRows + playerX] = 0
            playerX += 1
        
        if (command == 3):
            world [playerY * amountOfRows + playerX] = 0
            playerY -= 0
    
    while (True):
        printWorld()
        mainMenu()
        world [playerY * amountOfRows + playerX] = -1
导入旅行者200图书馆
playerY=1
playerX=0
数量=3
command=voyager200librarys.menu(“py C R A F T”、[“播放”、“退出”])
如果(命令==“播放”):
世界=[0,0,0,0,-1,0,1,1,1]
def printWorld():
索引=0
indexCheck=0
对于范围内的x(len(世界)):
voyager200librarys.print不带换行符(“”)
如果(世界[索引]==0):
voyager200librarys.print不带换行符(“”)
如果(世界[索引]==1):
Voyager200Library S.print不带换行符(“D”)
如果(世界[索引]=-1):
voyager200librarys.print不带换行符(&)
indexCheck+=1
如果(indexCheck==3):
打印(“”)
indexCheck=0
指数+=1
def主菜单():
打印(“”)
whatToDo=voyager200librarys.menu(“要做什么?”,[“移动”])
如果(whatToDo==“移动”):
移动控件()
def movementControls():
打印(“”)
打印(“移动控制:”)
打印(“<>Ʌ”)
打印(“”)
打印(“| | |”)
打印(“V”)
打印(“”)
打印(“1 2 3”)
打印(“”)
命令=输入(“请选择一个选项:”)
command=int(命令)
如果(命令!=1):
如果(命令!=2):
如果(命令!=3):
打印(“请下次选择有效选项。”)
如果(命令==1):
世界[playerY*amountOfRows+playerX]=0#(问题发生在这里)
playerX-=1
如果(命令==2):
世界[playerY*amountOfRows+playerX]=0
playerX+=1
如果(命令==3):
世界[playerY*amountOfRows+playerX]=0
playerY-=0
虽然(正确):
printWorld()
主菜单()
世界[playerY*amountOfRows+playerX]=-1
我试着换了“playerX”和“playerY”,但都没能解决这个问题!顺便说一句,这个游戏本身就是一个模仿雷霆战机的游戏,如果你遗漏了任何信息,请询问我

如果有人有答案,请帮助

顺便说一句,快速回答就好了。
另外,它是python。

错误涉及“局部变量‘playerY’”;这应该给你一个线索。如果你要给函数中的一个全局变量赋值,那么你必须通过在函数开头添加
global playerX,playerY
来声明。顺便说一句,说“快速回答就好了”只会让人生气。如果有人要回答,他们不会说“我想我会等4个小时再回答。”