我正在编写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实际上共享值?
我尝试过其他变量,但这并不奏效。我试图在值上使用全局函数来引导它,但这也不起作用。
答案 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: