`<>` 在 Python 中是啥意思?

Posted

技术标签:

【中文标题】`<>` 在 Python 中是啥意思?【英文标题】:What does `<>` mean in Python?`<>` 在 Python 中是什么意思? 【发布时间】:2013-05-20 21:22:05 【问题描述】:

我正在尝试在 Python 3.3 中使用一个旧库(从 2003 年开始!)。当我导入它时,Python 会抛出一个错误,因为源文件中有 &lt;&gt; 符号,例如:

if (cnum < 1000 and nnum <> 1000 and ntext[-1] <> "s":
    ...

我猜这是该语言中现已废弃的标志。

这到底是什么意思,我应该用哪个(更新的)标志来代替它?

【问题讨论】:

我想指出,它显然不是一个 Python 3.3 库,而是一个 Python 2.x 库。 != can also be written &lt;&gt;, but this is an obsolete usage kept for backwards compatibility only. New code should always use != @GrijeshChauhan 在 3.x 中,这不是真的。正如下面的答案所述,它不仅过时,而且根本不是有效的语法。 让我想起了 ML 中的比较。 【参考方案1】:

意思是不等于。取自ABC(python的前身)见here:

x &lt; y, x &lt;= y, x &gt;= y, x &gt; y, x = y, x &lt;&gt; y, 0 &lt;= d &lt; 10

顺序测试(&lt;&gt; 表示'不等于'

我相信 ABC 是从 Pascal 那里得到的,Pascal 是 Guido 开始编程时使用的语言。

它现在已在 Python 3 中删除。请改用 !=。如果你是CRAZY,你可以废弃!=,并在Py3K中使用this easter egg只允许&lt;&gt;

>>> 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

【讨论】:

__future__ 导入确实“在 Python3 中取回它”。它有效地替换 !=。导入后,表达式1 != 2 引发SyntaxError 其实这不是历史。这是 4 月 1 日的笑话。见PEP-401。 只是一个相关问题的链接:So what exactly does “from future import barry_as_FLUFL” do? 重要的是(正如 one of the answers 对 Alvin Wong 的链接所指出的那样),__future__ 导入仅在 REPL 中“有效”,而不是在脚本中。【参考方案2】:

这意味着不等于,但已弃用,请改用!=

【讨论】:

不推荐使用:在 Python 3 中,这是一个语法错误,正如提问者所发现的那样。 为什么有人会为已接受的问题添加-1?请发表评论,这样我可以解决问题,如果有的话.. @PeterVaro 我赞成你的,但总的来说(不是在这种情况下!)如果反对者认为它不好并且接受一个不好的决定(再次,在这种情况下不适用)。 也就是说,我也想知道在这种情况下出现 -1 的原因 - 答案完全有效且正确。 @glglgl 我自己也经历过——有人觉得这个问题不应该被问到,即使答案是正确的,也会惩罚任何留下答案的人。我自己不相信这一点,我保留对实际上不正确或在某种程度上有害的答案投反对票。【参考方案3】:

值得了解的是,您可以使用 Python 本身来查找文档,即使是 Google 无法处理的标点符号运算符。

>>> help("<>")

比较

与 C 不同,Python 中的所有比较操作都具有相同的优先级, 它低于任何算术、移位或按位的 手术。同样与 C 不同的是,a &lt; b &lt; c 这样的表达式具有 数学中的常规解释:

比较产生布尔值:TrueFalse

比较可以任意链接,例如,x &lt; y &lt;= z 是 等效于x &lt; y and y &lt;= z,除了评估y 只有一次(但在这两种情况下,当发现 x < y 为假时,根本不会评估 z)。

&lt;&gt;!= 的形式是等价的;为了与 C 保持一致, 首选!=;其中!= 在下面提到&lt;&gt; 也是 公认。 &lt;&gt; 拼写已过时。

见http://docs.python.org/2/reference/expressions.html#not-in

【讨论】:

这也出现在 python 3 中(嗯,对我来说有些不同)。多么奇怪。 +1 这将是一个很好的答案,只是它似乎与 &lt;&gt; 运算符本身一样过时。 @TerryA 我在 Python 3.8.6 中找不到该文本。【参考方案4】:

这是一种指定!= 的旧方法,已在 Python 3 中删除。足以使用它的库也可能遇到与 Python 3 的各种其他不兼容问题:它可能是通过2to3 运行它是一个好主意,它会自动更改这一点,等等。

【讨论】:

【参考方案5】:

使用!=&lt;&gt;。两者都代表不相等。

[参考:Python 语言参考] 比较运算符&lt;&gt;!= 是同一运算符的替代拼写。 != 是首选拼写; &lt;&gt; 已过时。

【讨论】:

以上是关于`<>` 在 Python 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

这个符号在 PHP 中是啥意思 <?=

这个“<>”在模板类函数中是啥意思?

“QUERY”在 dig 的响应中是啥意思?

“Box<Fn() + Send + 'static>” 在 rust 中是啥意思?

<value optimize out> 在 gdb 中是啥意思?

<OR> 在 Proguard 去混淆跟踪中是啥意思?