L'opérateur not equal en Python
L'opérateur 'not equal' en Python renvoie True si deux variables sont de même type et ont des valeurs différentes, si les valeurs sont identiques, alors il renvoie False. Python est un langage dynamique et fortement typé, donc si les deux variables ont les mêmes valeurs mais qu'elles sont de types différents, alors l'opérateur 'not equal' renverra True.
Les opérateurs de différence en Python
| Opérateur | Description |
|---|---|
| != | L'opérateur Not Equal fonctionne à la fois dans Python 2 et Python 3. |
| <> | L'opérateur de différence dans Python 2, obsolète dans Python 3. |
Exemple Python 2
Voyons quelques exemples de l'opérateur de différence dans 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 de 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 utiliser l'opérateur 'différent de' en Python avec les f-strings également si vous utilisez Python 3.6 ou une version supé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 'pas égal', cela appelle la fonction __ne__(self, other). Nous pouvons donc définir notre propre implémentation pour un objet et modifier le résultat naturel. Disons que nous avons une classe Data avec des champs - id et enregistrement. Lorsque nous utilisons l'opérateur de différence, nous voulons simplement le comparer à 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):
# return true if different types
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 des enregistrements d1 et d2 sont les mêmes mais que l'« 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 d'autres exemples de Python sur notre dépôt GitHub.


