Existe um operador "não igual" no Python?

396

Como você diria que não é igual?

Gostar

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

Existe algo equivalente a ==isso significa "não é igual"?

Entidade Aj
fonte
5
Você está perguntando sobre else, !=(opcionalmente <>) ou is not?
Tadeck
14
Atenção que <> não funciona mais em python 3, então use =!
Antonello
3
da documentação do python: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed
11
da documentação do python: python2: docs.python.org/2/reference/expressions.html#not-in
hamed

Respostas:

623

Use !=. Veja operadores de comparação . Para comparar identidades de objetos, você pode usar a palavra-chave ise sua negação is not.

por exemplo

1 == 1 #  -> True
1 != 1 #  -> False
[] is [] #-> False (distinct objects)
a = b = []; a is b # -> True (same object)
tskuzzy
fonte
20
<>não é removido do Python 3. Caixa PEP401e tentar from __future__ import barry_as_FLUFLlol ~
yegle
Como você compararia dois dados binários?
Léo Léopold Hertz ·
2
Apenas algumas informações, PEP401 mencionada nos comentários, foi uma piada de April Fool. <>não é suportado no Python3 agora.
J ... S
11
Apenas para o registro: Os operadores de comparação em Python 3.7
Ocaso Protal
60

Diferente != (vs igual ==)

Você está perguntando sobre algo assim?

answer = 'hi'

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

Este gráfico Python - Operadores básicos pode ser útil.

Levon
fonte
28

Existe o !=operador (não igual) que retorna Truequando dois valores diferem, mas tenha cuidado com os tipos porque "1" != 1. Isso sempre retornará True e "1" == 1sempre retornará False, pois os tipos diferem. O Python é dinamicamente, mas fortemente tipado, e outras linguagens estaticamente se queixam da comparação de tipos diferentes.

Há também a elsecláusula:

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

O isoperador é o operador de identidade do objeto usado para verificar se dois objetos são iguais:

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.
Samy Vilar
fonte
12

Você pode usar ambos !=ou <>.

No entanto, observe que !=é preferível onde <>está obsoleto.

Malek B.
fonte
7

Visto que todo mundo já listou a maioria das outras maneiras de dizer não igual, acrescentarei:

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"

neste caso, é simples alternar a verificação de positivo == (verdadeiro) para negativo e vice-versa ...

gabeio
fonte
1

Você pode usar "is not" para "not equal" ou "! =". Por favor, veja o exemplo abaixo:

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

O código acima imprimirá "true" como a = 2 atribuído antes da condição "if". Agora, veja o código abaixo para "não é igual"

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

O código acima imprimirá "não igual" como a = 2, conforme atribuído anteriormente.

Amir Md Amiruzzaman
fonte
0

Existem dois operadores no Python para a condição "não igual" -

a.)! = Se os valores dos dois operandos não forem iguais, a condição se tornará verdadeira. (a! = b) é verdadeiro.

b.) <> Se os valores dos dois operandos não forem iguais, a condição se tornará verdadeira. (a <> b) é verdadeiro. Isso é semelhante ao operador! =.

user128364
fonte
-3

Use !=ou <>. Ambos significam não é igual.

Os operadores de comparação <>e !=são grafias alternativas do mesmo operador. !=é a ortografia preferida; <>é obsoleto. [Referência: referência da linguagem Python]

Ehsan
fonte
2
essa resposta é basicamente uma cópia da que o @ user128364 deu antes.
SA
-5

Você pode simplesmente fazer:

if hi == hi:
    print "hi"
elif hi != bye:
     print "no hi"
cgastald
fonte
11
Qual valor você atribuiria às variáveis hie bye? Seja o que for, a cláusula elif nunca seria alcançada. Por fim, este exemplo não fornece uma resposta clara à pergunta.
SA