我正在尝试在 Python 3.3 中使用一个旧库(从 2003 年开始!)。当我导入它时,Python 会抛出一个错误,因为<>
源文件中有符号,例如:
if (cnum < 1000 and nnum <> 1000 and ntext[-1] <> "s":
...
我猜这是该语言中现已被遗弃的标志。
它到底是什么意思,我应该用哪个(更新的)标志来代替它?
我正在尝试在 Python 3.3 中使用一个旧库(从 2003 年开始!)。当我导入它时,Python 会抛出一个错误,因为<>
源文件中有符号,例如:
if (cnum < 1000 and nnum <> 1000 and ntext[-1] <> "s":
...
我猜这是该语言中现已被遗弃的标志。
它到底是什么意思,我应该用哪个(更新的)标志来代替它?
不等于的意思。它取自ABC
(python的前身),请参见此处:
x < y, x <= y, x >= y, x > y, x = y, x <> y, 0 <= d < 10
订单测试(
<>
表示“不等于”)
我相信ABC
它来自 Pascal,Guido 开始编程时使用的一种语言。
它现在已在 Python 3 中删除。!=
改为使用。如果你很疯狂,你可以使用这个复活节彩蛋废弃!=
并只允许<>
在 Py3K 中使用:
>>> from __future__ import barry_as_FLUFL
>>> 1 != 2
File "<stdin>", line 1
1 != 2
^
SyntaxError: with Barry as BDFL, use '<>' instead of '!='
>>> 1 <> 2
True
这意味着不等于,但已弃用,请!=
改用。
值得知道的是,您可以使用 Python 本身来查找文档,即使对于 Google 无法处理的标点符号运算符也是如此。
>>> help("<>")
比较
与 C 不同,Python 中的所有比较操作都具有相同的优先级,低于任何算术、移位或按位操作。同样与 C 不同,表达式 like
a < b < c
具有数学中的常规解释:比较产生布尔值:
True
或False
。比较可以任意链接,例如,
x < y <= z
等价于x < y and y <= z
,除了y
只评估一次(但在两种情况下,当发现为假z
时根本不评估)。x < y
形式
<>
和!=
等价;为了与 C 保持一致,!=
首选;!=
下面提到的地方<>
也被接受。<>
拼写被认为是过时的。
请参阅http://docs.python.org/2/reference/expressions.html#not-in
这是一种旧的指定方式!=
,在 Python 3 中已被删除。一个足够老的库可以使用它也可能遇到与 Python 3 的各种其他不兼容问题:通过2to3运行它可能是个好主意,它会自动改变这一点,等等。
使用!=
或<>
。两者都代表不相等。
[参考:Python 语言参考] 比较运算符<>
和!=
是同一运算符的替代拼写。!=
是首选拼写;<>
已过时。