Creo que si entiendo correctamente, a b
es exactamente lo mismo funcionalmente que a != b
, y en Python not a == b
, pero ¿hay motivos para usar sobre las otras versiones? Sé que un error común para los recién llegados a Python es pensar que
not a is b
es lo mismo que a != b
o not a == b
.
, o es exactamente el mismo funcionalmente? <>
en Python 2 es un sinónimo exacto de !=
– no hay razón para usarlo, tampoco hay desventajas excepto la heterogeneidad gratuita (un problema de estilo). Ha sido desalentado durante mucho tiempo, y ahora se ha eliminado en Python 3.
Solo una nota pedante: el operador <>
en cierto sentido se llama erróneamente (¿está mal catalogado?). a <> b
puede interpretarse naturalmente como que significa a < b or a > b
(evaluar a
y b
solo una vez, por supuesto), pero como no todas las ordenaciones son ordenaciones totales, esto no coincide con la semántica real. Por ejemplo, 2.0 != float('nan')
es verdadero, pero 2.0 < float('nan') or 2.0 > float('nan')
es falso.
El operador !=
No está sujeto a tal posible malinterpretación.
Para una toma interesante (¡con poesía!) Sobre la decisión de abandonar <>
para Python 3.x, consulte Requiem para un operador .
no debes usar <>
en python.