我想知道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
有人可以解释“ =”和“ ==”之间的区别吗?
答案 0 :(得分:1)
两者之间的区别是:
==
是检查两个对象是否相等的运算符。
=
是将值分配给变量的运算符。
示例:
>>> a = 5 # `=` operator
>>> a
5
>>> a == 5 # `==` operator
True
>>>
代码之所以返回错误的原因,是因为您在函数外部已经有一个名为a
的变量,因此您想要再次分配它,将无法正常工作。
感谢@SpencerWieczorek为代码下方的解释部分提供了更好的解释:
注意:第二个示例局部a和全局a是完全不同的变量。为了使用您定义的全局变量a,您需要在函数开始时添加全局变量a。局部变量与全局变量无关,也不是导致错误的原因。
答案 1 :(得分:-1)
要了解这两者之间的区别,您首先需要了解comparison operators和assignment operators之间的区别
=
分配运算符
这将为给定值分配另一个值。还有+=
,-=
,*=
,/=
...,它们执行值赋值,在位置上对值进行加,减,乘或除。左边的值。 *更多说明和信息可在文档或我提供的链接中找到。
a = 5
b = 2
print(a, b)
#5 2
b += 10
print(b)
#12
==
比较运算符
这将比较两个python对象,如果两个变量的值相同,则返回True
。 (不要误解is
,它会比较两个变量是否指向同一个对象)还有!=
,<>
,>
,{ {1}} ...确定两个对象的结果是否相等,更大或更小。
<