我正在写一个Tic Tac Toe AI,但我想定义的函数有问题。它可以简化为类似以下内容:
z = True
X = 1
y = 2
def place(X,y):
if z = True:
if X == 1:
x = y
(请注意,我做了一些x‘s资本只是为了更容易在这篇文章中区分它们)。这里的问题是,我需要将y的值赋给X,但在"x=y“语句中,我得到了一个错误,即x是一个未使用的局部变量,例如,如果该IF
语句中的x仅对该IF
语句是局部变量,并且没有连接。
使用它进行的测试表明,函数运行后,X保持不变,并打印出旧值。在此之前的函数中没有给出错误,只有标记为x的函数是局部的。我能做些什么来解决这个问题,使x和x实际上共享数值?
我试过让go通过其他变量,但这不起作用。我曾尝试在一个值上使用全局函数来引导它,但也不起作用。
发布于 2017-03-29 16:24:16
您的'x‘是本地的,因为它是首先在本地定义的。对其进行全局定义,并将其标记为全局。那是,
z = True
X = 1
x = None
y = 2
def place(X,y):
global x
if z = True:
if X == 1:
x = y
发布于 2017-03-29 16:24:34
如果您希望从函数内部访问全局变量,则应该使用关键字global
,以便函数知道在哪里可以找到此变量。
z = True
X = 1
y = 2
def place(X,y):
global z, X, y
if z = True:
if X == 1:
x = y
发布于 2017-03-29 16:26:35
你这里有一个打字错误:
if z = True:
它应该是
if z == True:
https://stackoverflow.com/questions/43088114
复制相似问题