443 votes

Existe-t-il un opérateur "non égal" en Python ?

Comment diriez-vous qu'il 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 "pas égal" ?

6 votes

Vous demandez else , != (facultativement <> ) ou is not ?

21 votes

Attention, <> ne fonctionne plus dans python 3, utilisez donc !=.

4 votes

De la documentation python : Python3 : The operators <, >, ==, >=, <=, and != compare the values of two objects. docs.python.org/3/reference/expressions.html#valeur-comparaisons

693voto

tskuzzy Points 19279

Utilisez != . Voir opérateurs de comparaison . Pour comparer les identités des objets, vous pouvez utiliser le mot-clé is 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)

1 votes

Comment comparer deux données binaires ?

2 votes

Juste une info, le PEP401 mentionné dans les commentaires était une blague de poisson d'avril. <> n'est plus supporté dans Python3.

1 votes

73voto

Levon Points 34085

Non égal != (vs égal == )

Vous demandez quelque chose comme ça ?

answer = 'hi'

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

Ce site Python - Opérateurs de base pourrait être utile.

32voto

Samy Vilar Points 4539

Il y a le != (non égal) qui renvoie True lorsque deux valeurs diffèrent, mais faites attention aux types car "1" != 1 . Ceci retournera toujours Vrai et "1" == 1 retournera toujours False, puisque les types sont différents. Python est dynamiquement, mais fortement typé, et d'autres langages statiquement typés se plaindraient de la comparaison de types différents.

Il y a aussi le else clause :

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

Le site is est l'opérateur identité de l'objet opérateur utilisé pour vérifier si deux objets sont en fait les mêmes :

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.

14voto

Malek B. Points 1009

Vous pouvez utiliser les deux != ou <> .

Cependant, notez que != est préféré lorsque <> est déprécié.

8voto

gabeio Points 465

Puisque tout le monde a déjà énuméré la plupart des autres façons de dire "pas égal", je vais juste ajouter :

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 s'agit simplement de passer de la vérification du positif == (vrai) au négatif et vice versa...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X