Existe-t-il un opérateur «différent» en Python?


396

Comment diriez-vous que ce n'est pas égal?

Comme

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

Y a-t-il quelque chose d'équivalent ==qui signifie «non égal»?


5
Parlez - vous else, !=( le cas échéant <>) ou is not?
Tadeck

14
Attention que <> ne fonctionne plus en python 3, alors utilisez! =
Antonello

3
à partir de la documentation python: Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#value-comparisons
hamed

1
à partir de la documentation python: python2: docs.python.org/2/reference/expressions.html#not-in
hamed

Réponses:


624

Utilisez !=. Voir les opérateurs de comparaison . Pour comparer les identités d'objets, vous pouvez utiliser le mot is- clé et sa négation is not.

par exemple

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

20
<>n'est pas supprimé de Python 3. Commander PEP401et essayer from __future__ import barry_as_FLUFLlol ~
yegle

Comment compareriez-vous deux données binaires?
Léo Léopold Hertz

2
Juste quelques informations, PEP401 mentionné dans les commentaires était une blague de poisson d'avril. <>n'est pas pris en charge dans Python3 maintenant.
J ... S

1
Pour la
petite

60

Pas égal != (vs égal== )

Demandez-vous quelque chose comme ça?

answer = 'hi'

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

Ce graphique Python - Opérateurs de base peut être utile.


28

Il y a l' !=opérateur (différent) qui retourne Truelorsque deux valeurs diffèrent, mais soyez prudent avec les types car "1" != 1. Cela retournera toujours True et "1" == 1retournera toujours False, car les types diffèrent. Python est dynamiquement, mais fortement typé, et d'autres langages typés statistiquement se plaindraient de comparer différents types.

Il y a aussi la elseclause:

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

L' isopérateur est l' opérateur d' identité d'objet utilisé pour vérifier si deux objets sont en fait identiques:

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

Vous pouvez utiliser les deux !=ou <>.

Cependant, notez qu'il !=est préférable où <>est déconseillé.


7

Étant donné que tout le monde a déjà énuméré la plupart des autres façons de dire non égal, j'ajouterai simplement:

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"

dans ce cas, il est simple de basculer la vérification du positif == (vrai) vers le négatif et vice versa ...


1

Vous pouvez utiliser "n'est pas" pour "pas égal" ou "! =". Veuillez voir l'exemple ci-dessous:

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

Le code ci-dessus affichera "vrai" comme un = 2 attribué avant la condition "si". Veuillez maintenant voir le code ci-dessous pour "différent"

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

Le code ci-dessus affichera "non égal" comme a = 2 comme attribué précédemment.


0

Il y a deux opérateurs en Python pour la condition "non égal" -

a.)! = Si les valeurs des deux opérandes ne sont pas égales, alors la condition devient vraie. (a! = b) est vrai.

b.) <> Si les valeurs des deux opérandes ne sont pas égales, alors la condition devient vraie. (a <> b) est vrai. Ceci est similaire à l'opérateur! =.


-3

Utilisez !=ou <>. Les deux signifient pas égal.

Les opérateurs de comparaison <>et !=sont des orthographes alternatives du même opérateur. !=est l'orthographe préférée; <>est obsolète. [Référence: référence du langage Python]


2
cette réponse est essentiellement une copie de celle donnée précédemment par @ user128364.
SA

-5

Vous pouvez simplement faire:

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

1
Quelle valeur affecteriez-vous aux variables hiet bye? Quoi qu'il en soit, la clause elif ne serait jamais atteinte. Enfin, cet exemple ne répond pas clairement à la question.
SA
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.