python-“=”和“=”之间有什么区别?

python-“=”和“=”之间有什么区别?,python,Python,我想知道a=1和a=a之间的区别是什么? 我举了两个例子如下: a = 2 def test(): print ("a=", a) a == 3 test() 结果是: a = 2 另一个例子是: a = 2 def test(): print ("a=", a) a = 3 test() 结果是: UnboundLocalError: local variable 'a' referenced before assi

我想知道a=1和a=a之间的区别是什么? 我举了两个例子如下:

a = 2
def test():

        print ("a=", a)
        a == 3

test()
结果是:

a = 2
另一个例子是:

a = 2
def test():

        print ("a=", a)
        a = 3

test()
结果是:

UnboundLocalError: local variable 'a' referenced before assignment

是否有人可以解释=和==?两者之间的区别是:

==是检查两个对象是否相等的运算符

=是为变量赋值的运算符

例如:

代码返回错误的另一个原因是,在函数外部已经有一个名为a的变量,因此如果要再次赋值,它将无法工作

感谢@SpencerWieczorek对代码下面解释部分的更好解释:

注:第二个示例局部a和全局a是完全不同的变量。为了使用您定义的全局a,您需要在函数的开头添加全局a。局部变量与全局变量无关,也不是错误的原因


要理解这两者之间的区别,首先需要理解和之间的区别

=赋值运算符

这将为给定值指定另一个值。还有+=,-=,*=,/=。。。将右侧的值与左侧的值相加、相减、相乘或相除,以就地执行值指定*更多的解释和信息可以在文档或我提供的链接中找到

a = 5
b = 2
print(a, b)
#5 2
b += 10
print(b)
#12
==比较运算符


这将比较两个python对象,如果两个变量产生相同的值,则返回True。不要弄错了,如果两个变量指向同一个对象,那么也有!=,>,注:第二个示例局部a和全局a是完全不同的变量。为了使用您定义的全局a,您需要在函数的开头添加全局a。局部变量与全局变量没有任何关系。@SpencerWieczorek非常感谢您的解释,在这一点上您比我更清楚。@SpencerWieczorek编辑了我的。赋值语句是任何编程教程中教的第一件事。@TigerhawkT3我将编辑我的答案。=是赋值语句。在第二个示例中,a=3创建了一个名为a的局部变量,在分配该变量之前,您正在局部范围中引用该变量。在第一个示例中,a==3是一个等式表达式,没有新变量,因此它只引用全局a。这个问题可能没有用处,因为教程中已经非常清楚地说明了“=”和“==”之间的差异。这是一个非常基本的问题,可以通过花大约五分钟的时间阅读教程来回答。在发布问题之前,请进行基础研究。任务陈述是任何编程教程中首先教授的内容之一。非常正确,这就是为什么我将我的答案命名为“lamens”的原因。它不需要一个外行式的答案;打开一本教科书或在线教程只需花费最少的努力。
a = 5
b = 2
print(a, b)
#5 2
b += 10
print(b)
#12
a == 5
#True
a == b
#False