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

时间:2019-01-21 00:47:09

标签: python

我想知道a = 1a == 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

有人可以解释“ =”和“ ==”之间的区别吗?

2 个答案:

答案 0 :(得分:1)

两者之间的区别是:

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

  • =是将值分配给变量的运算符。

示例:

>>> a = 5 # `=` operator
>>> a
5
>>> a == 5 # `==` operator
True
>>> 

代码之所以返回错误的原因,是因为您在函数外部已经有一个名为a的变量,因此您想要再次分配它,将无法正常工作。

感谢@SpencerWieczorek为代码下方的解释部分提供了更好的解释:

  

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

答案 1 :(得分:-1)

要了解这两者之间的区别,您首先需要了解comparison operatorsassignment operators之间的区别

=分配运算符

这将为给定值分配另一个值。还有+=-=*=/= ...,它们执行值赋值,在位置上对值进行加,减,乘或除。左边的值。 *更多说明和信息可在文档或我提供的链接中找到。

a = 5
b = 2
print(a, b)
#5 2
b += 10
print(b)
#12

==比较运算符

这将比较两个python对象,如果两个变量的值相同,则返回True(不要误解is,它会比较两个变量是否指向同一个对象)还有!=<>>,{ {1}} ...确定两个对象的结果是否相等,更大或更小。

<