Python中是否存在“不相等”运算符?


395

你怎么说不等于?

喜欢

if hi == hi:
    print "hi"
elif hi (does not equal) bye:
    print "no hi"

是否有等同于==“不平等”的东西?


5
你是询问else!=(可选<>)或is not
塔德克2012年

14
注意<>在python 3中不再起作用,因此请使用!=
Antonello

3
来自python文档:Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed

Answers:


623

使用!=。请参阅比较运算符。为了比较对象身份,可以使用关键字is及其否定词is not

例如

1 == 1 #  -> True
1 != 1 #  -> False
[] is [] #-> False (distinct objects)
a = b = []; a is b # -> True (same object)

20
<>是不是在Python 3结帐取出PEP401,并尝试from __future__ import barry_as_FLUFL哈哈〜
yegle

您将如何比较两个二进制数据?
莱奥波德·赫兹(LéoLéopoldHertz)2015年

2
只是一些信息,评论中提到的PEP401是愚人节笑话。<>Python3现在不支持。
J ... S

1
仅作记录:Python 3.7中的
比较运算符

60

不等于 != (vs等于==

您是否在问这样的事情?

answer = 'hi'

if answer == 'hi':     # equal
   print "hi"
elif answer != 'hi':   # not equal
   print "no hi"

Python-基本运算符图表可能会有所帮助。


28

当两个值不同时,有一个!=(不相等)运算符返回True,尽管要小心类型,因为"1" != 1"1" == 1由于类型不同,它将始终返回True,并且始终返回False。Python是动态的但是强类型的,而其他静态类型的语言会抱怨比较不同的类型。

还有else子句:

# This will always print either "hi" or "no hi" unless something unforeseen happens.
if hi == "hi":     # The variable hi is being compared to the string "hi", strings are immutable in Python, so you could use the 'is' operator.
    print "hi"     # If indeed it is the string "hi" then print "hi"
else:              # hi and "hi" are not the same
    print "no hi"

is运算符是对象标识运算符,用于检查两个对象实际上是否相同:

a = [1, 2]
b = [1, 2]
print a == b # This will print True since they have the same values
print a is b # This will print False since they are different objects.

12

您可以同时使用!=<>

但是,请注意,不建议!=<>不推荐的地方使用它。


7

看到其他所有人都已经列出了大多数其他方式来表示不平等,我将添加:

if not (1) == (1): # This will eval true then false
    # (ie: 1 == 1 is true but the opposite(not) is false)
    print "the world is ending" # This will only run on a if true
elif (1+1) != (2): #second if
    print "the world is ending"
    # This will only run if the first if is false and the second if is true
else: # this will only run if the if both if's are false
    print "you are good for another day"

在这种情况下,很容易将正==(true)的检查切换为负,反之亦然...


1

您可以将“不等于”用于“不等于”或“!=“。请参见以下示例:

a = 2
if a == 2:
   print("true")
else:
   print("false")

上面的代码将在“ if”条件之前将“ true”打印为a = 2。现在,请参见下面的“不等于”代码

a = 2
if a is not 3:
   print("not equal")
else:
   print("equal")

上面的代码将打印“不等于”,即早先分配的a = 2。


0

Python中有两个用于“不相等”条件的运算符-

a。)!=如果两个操作数的值不相等,则条件变为true。(a!= b)是正确的。

b。)<>如果两个操作数的值不相等,则条件变为true。(a <> b)是正确的。这类似于!=运算符。


-3

使用!=<>。两者代表不平等。

比较运算符<>!=是相同运算符的替代拼写。!=是首选拼写;<>是过时的。[参考:Python语言参考]


2
这个答案基本上是之前@ user128364的副本。
SA

-5

您可以简单地执行以下操作:

if hi == hi:
    print "hi"
elif hi != bye:
     print "no hi"

1
将分配给变量什么价值hibye?无论如何,都不会到达elif子句。最后,该示例未明确提供该问题的答案。
SA
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.