Operador de desigualdad en Python

Operador de desigualdad en Python devuelve True si dos variables son del mismo tipo y tienen valores diferentes, si los valores son iguales, entonces devuelve False. Python es un lenguaje dinámico y fuertemente tipado, por lo que si las dos variables tienen los mismos valores pero son de tipos diferentes, el operador de no igualdad devolverá True.

Operadores de no igualdad en Python

Operator Description
!= Not Equal operator, works in both Python 2 and Python 3.
<> Not equal operator in Python 2, deprecated in Python 3.

Ejemplo en Python 2

Veamos algunos ejemplos del operador de no igualdad en Python 2.7.

$ python2.7
Python 2.7.10 (default, Aug 17 2018, 19:45:58) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 <> 20
True
>>> 10 <> 10
False
>>> 10 != 20
True
>>> 10 != 10
False
>>> '10' != 10
True
>>> 

Ejemplo en Python 3

Aquí tienes algunos ejemplos con la consola de Python 3.

$ python3.7
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 <> 20
  File "<stdin>", line 1
    10 <> 20
        ^
SyntaxError: invalid syntax
>>> 10 != 20
True
>>> 10 != 10
False
>>> '10' != 10
True
>>> 

También podemos usar el operador de no igualdad en Python con f-strings si estás utilizando la versión 3.6 o superior.

x = 10
y = 10
z = 20

print(f'x is not equal to y = {x!=y}')

flag = x != z
print(f'x is not equal to z = {flag}')

# python is strongly typed language
s = '10'
print(f'x is not equal to s = {x!=s}')

Salida:

x is not equal to y = False
x is not equal to z = True
x is not equal to s = True

Python no es igual con un objeto personalizado

Cuando usamos el operador de no igual, se llama a la función __ne__(self, other). Así que podemos definir nuestra implementación personalizada para un objeto y cambiar la salida natural. Digamos que tenemos una clase Data con campos: id y record. Cuando usamos el operador de no igual, simplemente queremos compararlo por el valor de record. Podemos lograr esto implementando nuestra propia función __ne__().

class Data:
    id = 0
    record = ''

    def __init__(self, i, s):
        self.id = i
        self.record = s

    def __ne__(self, other):
        # devuelve verdadero si son de tipos diferentes
        if type(other) != type(self):
            return True
        if self.record != other.record:
            return True
        else:
            return False


d1 = Data(1, 'Java')
d2 = Data(2, 'Java')
d3 = Data(3, 'Python')

print(d1 != d2)
print(d2 != d3)

Salida:

False
True

Observa que los valores de registro de d1 y d2 son iguales, pero “id” es diferente. Si eliminamos la función __ne__(), entonces la salida será así:

True
True

Puedes revisar el script completo de Python y más ejemplos en Python en nuestro Repositorio en GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-not-equal-operator