【问题标题】:Difference between = and === 和 == 之间的区别
【发布时间】:2014-09-20 07:54:19
【问题描述】:

我是 python 的绝对初学者,我想知道 = 和 == 之间的区别。

我注意到在定义数值变量时 = 和 == 似乎可以替换,但对于布尔变量则不行。

任何澄清都会有所帮助。例如,对于这个程序

my_int = 7
my_int == 3
print my_int

这不会将 3 值替换为变量,而如果我设置了

my_int== 7 
my_int=3

它将 7 的值替换为 3。

请解释这些运算符的工作原理。谢谢

【问题讨论】:

  • = 是将右侧 (rhs) 的值赋值给左侧 (lhs),== 是 lhs 和 rhs 之间的比较。您将通过在my_int == 7 之后尝试print(my_int) 来看到这一点(假设您已经通过使用= 给它一些值来声明my_int
  • 伪代码:a = 10b = a# b is equal to 10if (a == b) # true because a is equal to 10 and b is equal to 10

标签: python operator-keyword


【解决方案1】:

它们根本不可互换。 = 是一个赋值运算符,您可以在其中将左侧的变量设置为右侧的值。 == 是一个相等性测试,您检查两个值是否相等(如果相等则返回 True,否则返回 False

var = 7    # This sets var to 7
var == 7   # This tests to see if var is equal to 7, returning True or False

http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/ifstatements.html#more-conditional-expressions

有些语言不喜欢它们的相似度,它们使用= 进行相等性测试,使用<- 进行赋值。我知道我的教授喜欢这样编写伪代码。我不是 100% 确定为什么 === 会卡住,但这是 C、Java、Python 等的标准。

【讨论】:

    【解决方案2】:

    有趣的问题!

    显然,较早的 := 用于赋值,= 用于测试相等性。但是,为了节省空间,它改为= 用于赋值,== 用于相等以节省空间。出于同样的原因,&&|| 被更改为 &|,然后又改回来。

    我是从http://en.wikipedia.org/wiki/B_(programming_language)的历史部分读到的

    【讨论】:

    • := 仍在 Pascal 中使用,PHP 等语言有 ======。但我们在这里讨论的是 Python。
    【解决方案3】:

    = 符号表示 assignment 并且可以随着它的进行而更改,例如首先我可能会说 a=15 现在我想为了我的利益将该分配更改为 @987654323 @。

    == 运算符表示等于,就像数学中的常规等号一样。这是无法改变的。例如首先我可能会说 1+1==2 显然不能改变 1+1 15 永远不能改变。

    【讨论】:

      【解决方案4】:

      这会将 var1 设置为香蕉

      var1 = 'banana'
      

      这会检查 var 1 是否等于香蕉

      if var1 == 'banana':
          print('var1 is equal to banana')
      else:
          print('var1 isn\'t equal to banana')
      

      【讨论】:

        【解决方案5】:

        = 用于声明一个变量(即为变量赋值 [at RHS])
        例如:a=10 , b= 100 , c= a+b

        ==表示等式检查(布尔或y/n数据类型),即检查LHS是否等于RHS,然后返回True或@987654327 @.
        例如:
        1+1 == 2 返回True,
        1+2==2 返回False

        【讨论】:

          【解决方案6】:

          您可以使用 = 为变量分配新值,例如

          name = 'Yeremiah'
          

          但是,我们使用 == 来检查变量是否具有某个值。一个例子是

          if name == 'Yeremiah':
              print('Your name is rather uncommon.')
          else:
              print('Your name does not equal Yeremiah. Get out of here!')
          

          祝你好运!

          【讨论】:

            【解决方案7】:

            正如您所指出的,存在布尔大小写。 == 测试操作数的相等性,而 = 只是分配一个值。

            【讨论】:

              【解决方案8】:

              用=你分配一个值,例如:

              a = 14
              
              b = 20
              
              c = 34
              

              使用 == 可以将值与其他值进行比较。

              a == b
              
              False.
              
              a + b == c
              
              True.
              
              if a == 14:
              
                print('hello!!')
              

              【讨论】:

                【解决方案9】:

                因此,当您定义一个变量时,您使用=,但是当您检查变量是否等于某个值时,您使用==

                一个例子:

                my_var=1
                if my_var==1:
                    print "yes"
                elif my_var==0:
                    print "no"
                else:
                    print "maybe"
                

                【讨论】:

                  【解决方案10】:

                  答案很简单: "=" 是一个赋值运算符,这意味着当您为变量分配一个值时,例如香蕉 = 3。

                  它会给香蕉一个值 3 即“=”运算符使 L.H.S 等于 R.H.S .但是“==”的工作方式不同:

                  比较运算符如果你想问真的香蕉等于3你使用“==”它会返回“是”的答案“否”。例如:

                  if banana == 3:
                  print("yes there are three bananas ")
                  

                  【讨论】:

                    【解决方案11】:


                    = 运算符将变量设置为等于一个值,而 == 是一个比较运算符,例如您将在 IF 语句中使用的运算符。
                    希望这会有所帮助,卢克。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2021-12-25
                      • 2020-05-10
                      • 2010-10-28
                      • 2015-10-04
                      • 2012-08-12
                      • 2011-02-18
                      • 2019-12-21
                      • 2018-01-18
                      相关资源
                      最近更新 更多