web-dev-qa-db-fra.com

Que signifie "<>" en Python?

J'essaie d'utiliser dans Python 3.3 une ancienne bibliothèque (datant de 2003!). Lorsque je l’importe, Python me renvoie une erreur car il y a des signes <> dans le fichier source, par exemple:

if (cnum < 1000 and nnum <> 1000 and ntext[-1] <> "s":
    ...

Je suppose que c'est un signe maintenant abandonné dans la langue.

Qu'est-ce que cela signifie exactement et par quel signe (plus récent) dois-je le remplacer?

49
michaelmeyer

Cela signifie pas égal à. Il a été pris de ABC (prédécesseur de python) voir ici

x < y, x <= y, x >= y, x > y, x = y, x <> y, 0 <= d < 10

Ordre des tests (<> signifie 'pas égal')

Je crois que ABC l’a pris à Pascal, un langage avec lequel Guido a commencé à programmer. 

Il a maintenant été supprimé dans Python 3. Utilisez plutôt !=. Si vous êtes FOU, vous pouvez supprimer != et n'autoriser que <> dans Py3K avec cet oeuf de Pâques :

>>> from __future__ import barry_as_FLUFL
>>> 1 <> 2
True
92
jamylak

Cela signifie NOT EQUAL, mais il est déconseillé, utilisez plutôt !=.

42
Peter Varo

C’est une ancienne façon de spécifier !=, qui avait été supprimée dans Python 3. Une bibliothèque assez ancienne pour l’utiliser s’expose probablement à diverses autres incompatibilités avec Python 3: c’est probablement une bonne idée de le parcourir 2to3 , qui change automatiquement cela, parmi beaucoup d'autres choses.

14
lvc

Cela vaut la peine de savoir que vous pouvez utiliser Python lui-même pour trouver de la documentation, même pour les opérateurs de signe de ponctuation auxquels Google ne peut faire face.

>>> help("<>")

Des comparaisons

Contrairement à C, toutes les opérations de comparaison en Python ont la même priorité, qui est inférieur à celui de toute arithmétique, décalage ou au niveau des bits opération. De plus, contrairement à C, les expressions comme a < b < c ont le interprétation conventionnelle en mathématiques:

Les comparaisons donnent des valeurs booléennes: True ou False.

Les comparaisons peuvent être chaînées de manière arbitraire, par exemple, x < y <= z est équivalent à x < y and y <= z, sauf que y est évalué une seule fois (mais dans les deux cas, z n'est pas du tout évalué lorsque x < y est faux).

Les formulaires <> et != sont équivalents; pour la cohérence avec C, != est préféré; où != est mentionné ci-dessous <> est également accepté. L'orthographe <> est considérée comme obsolète.

Voir http://docs.python.org/2/reference/expressions.html#not-in

13
Colonel Panic

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

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

0
Ehsan