Python 3本地变量未使用

时间:2017-03-29 08:21:46

标签: python function python-3.x

我正在编写Tic Tac Toe AI并且遇到了我想要定义的函数的问题。它可以简化为:

z = True
X = 1
y = 2

def place(X,y):
    if z = True:
        if X == 1:
            x = y

(请注意,我制作了一些x' es资本只是为了让这篇文章更容易区分它们)。这里的问题是我需要将y的值赋给X,但是在" x = y"声明,我给出了一个错误,即x是一个未使用的局部变量,就好像IF语句中的x只对那个IF语句是本地的,并且没有连接。

用它进​​行的测试表明,在运行该函数后,X未改变,并打印旧值。之前函数中没有给出错误,只有标记为x的那个是本地的。我该怎么做才能解决这个问题,以便x和X实际上共享值?

我尝试过其他变量,但这并不奏效。我试图在值上使用全局函数来引导它,但这也不起作用。

3 个答案:

答案 0 :(得分:0)

你的' x'是本地的,因为它首先在本地定义。全局定义并将其标记为全局。也就是说,

z = True
X = 1
x = None
y = 2

def place(X,y):
    global x
    if z = True:
        if X == 1:
            x = y

答案 1 :(得分:0)

如果要从函数内部访问全局变量,则应使用关键字global,以便函数知道在哪里找到这些变量。

z = True
X = 1
y = 2

def place(X,y):
    global z, X, y
    if z = True:
        if X == 1:
            x = y

答案 2 :(得分:0)

你这里有一个错字:

if z = True:

应该是

if z == True: