usar sino relacionales operadores not logicos else ejemplos condicional como bool python floating-point equality

sino - ¿X== x alguna vez es falso en Python?



operadores relacionales en python (3)

De acuerdo con el estándar IEEE 754, not-a-number (NaN) siempre debe comparar false, sin importar en qué se compara.

Python 2.7.2+ (default, Oct 4 2011, 20:06:09) [GCC 4.6.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> x=float("NaN") >>> x==x False

Me encontré con esta línea de código en la fuente de SciPy, en el módulo de estadísticas :

return 1.0*(x==x)

¿Es este retorno algo diferente a 1.0 ? En otras palabras, ¿hay algún valor de x tal que x == x contenga False ?


Un tipo definido por el usuario puede anular el operador de igualdad para hacer lo que desee:

Python 3.2.2 (default, Feb 10 2012, 09:23:17) [GCC 4.4.5 20110214 (Red Hat 4.4.5-6)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> class A: ... def __eq__(self, other): ... return False ... >>> x=A() >>> x==x False


eso depende del valor de x. No he visto la fuente, pero digamos que haces algo como esto:

class A: def __eq__(self,other): return bool(random.getrandbits(1)) x = A()

ahora x == x puede devolver falso.