何时使用`<>`和`!=`运算符?

时间:2014-12-15 07:12:47

标签: python python-2.7 python-3.x comparison-operators python-internals

对此没有多大帮助。试图比较2个值,但它们不能相等。就我而言,它们可以(通常是)大于或小于。

我应该使用:

if a <> b:
   dostuff

if a != b:
   dostuff

This page说他们相似,这意味着他们至少有些不同。

2 个答案:

答案 0 :(得分:24)

引自Python language reference

  

比较运算符<>!=是同一运算符的备用拼写。 !=是首选拼写; <>已过时。

所以,它们都是同一个,但!=优先于<>

我尝试在Python 2.7.8中反汇编代码

from dis import dis
form_1 = compile("'Python' <> 'Python'", "string", 'exec')
form_2 = compile("'Python' != 'Python'", "string", 'exec')
dis(form_1)
dis(form_2)

得到以下

  1           0 LOAD_CONST               0 ('Python')
              3 LOAD_CONST               0 ('Python')
              6 COMPARE_OP               3 (!=)
              9 POP_TOP
             10 LOAD_CONST               1 (None)
             13 RETURN_VALUE

  1           0 LOAD_CONST               0 ('Python')
              3 LOAD_CONST               0 ('Python')
              6 COMPARE_OP               3 (!=)
              9 POP_TOP
             10 LOAD_CONST               1 (None)
             13 RETURN_VALUE

<>!=都生成相同的字节代码

              6 COMPARE_OP               3 (!=)

所以他们俩都是同一个。

注意:

根据{{​​3}},在Python 3.x中删除了

<>

引用the Python 3 Language Reference

  

!=也可以写成<>,但这是一种过时的用法,仅用于向后兼容。 新代码应始终使用!=

<强>结论

由于<>已在3.x中删除,并且根据文档,!=是首选方式,因此最好不要使用<>

答案 1 :(得分:0)

坚持!=

<>已过时!请查看最近的python参考手册。

相关问题