Opérateur Python non égal

Le non-opérateur en Python retourne True si deux variables sont du même type et ont des valeurs différentes, si les valeurs sont identiques, il retourne False. Python est un langage dynamique et fortement typé, donc si les deux variables ont les mêmes valeurs mais sont de types différents, alors l’opérateur non égal retournera True.

Opérateurs de non-égalité 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.

Exemple Python 2

Jetons un coup d’œil à quelques exemples de l’opérateur de non-égalité 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
>>> 

Exemple Python 3

Voici quelques exemples avec la console 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
>>> 

Nous pouvons également utiliser l’opérateur non égal en Python avec des f-strings si vous utilisez la version 3.6 ou ultérieure.

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}')

Sortie :

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

Python n’est pas égal à un objet personnalisé

Lorsque nous utilisons l’opérateur de non-égalité, il appelle la fonction __ne__(self, other). Ainsi, nous pouvons définir notre propre implémentation pour un objet et modifier la sortie naturelle. Supposons que nous ayons une classe Data avec les champs – id et record. Lorsque nous utilisons l’opérateur de non-égalité, nous voulons simplement le comparer pour la valeur de l’enregistrement. Nous pouvons y parvenir en implémentant notre propre fonction __ne__().

class Data:
    id = 0
    record = ''

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

    def __ne__(self, other):
        # retourne vrai si les types sont différents
        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)

Sortie :

False
True

Remarquez que les valeurs d’enregistrement de d1 et d2 sont les mêmes mais que « id » est différent. Si nous supprimons la fonction __ne__(), alors la sortie sera comme ceci :

True
True

Vous pouvez consulter le script Python complet et plus d’exemples Python depuis notre Dépôt GitHub.

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