Python 如何消除赋值错误之前引用的局部变量?

Python 如何消除赋值错误之前引用的局部变量?,python,python-2.7,Python,Python 2.7,我想做一个简单的程序,生成一个板,你可以在上面移动X。 代码: 每次我想让程序更改coordX或coordY的值时,我都会得到UnboundLocalError:在赋值之前引用局部变量coordY/coordX。我尝试了不同的方法——将变量设置为全局变量,在定义函数时为函数设置参数而不是使用变量,但什么都不起作用。一旦调用play,您就不会对coordX或coordY进行任何赋值,这就解释了为什么它们从未更改。粘贴的代码没有出现您所遇到的错误。你到底想把coordX和coordY分配到哪里?顺便

我想做一个简单的程序,生成一个板,你可以在上面移动X。 代码:


每次我想让程序更改coordX或coordY的值时,我都会得到UnboundLocalError:在赋值之前引用局部变量coordY/coordX。我尝试了不同的方法——将变量设置为全局变量,在定义函数时为函数设置参数而不是使用变量,但什么都不起作用。

一旦调用
play
,您就不会对
coordX
coordY
进行任何赋值,这就解释了为什么它们从未更改。

粘贴的代码没有出现您所遇到的错误。你到底想把coordX和coordY分配到哪里?顺便说一句,有关该错误的详细信息,请参阅我在上的帖子。当您从未尝试分配这些变量时,为什么要在函数中声明
global coordY
global coordX
?分配它们,这样您就可以清楚地看到发生了什么
from msvcrt import getch
import os

board = []

for x in range(20):
    board.append(["O"] * 20)

def print_board(board):
    for row in board:
        print " ".join(row)

def keys(coordx, coordy):
    global coordY
    global coordX
    key = ord(getch())
    if key == 97:
        coordx -= 1
    elif key == 100:
        coordx += 1
    elif key == 115:
        coordy -= 1
    elif key == 119:
        coordy += 1

def play(coordx, coordy):
    global coordY
    global coordX
    while True:
        board[coordx][coordy] = "X"
        print_board(board)

        keys(coordx, coordy)

        os.system('cls')

coordX = 10
coordY = 10

play(coordX, coordY)