Esta mañana, me encuentro escribiendo algo como:¿Cuáles son las normas relativas encadenamiento de "==" y en Python
if (a == b == c):
# do something
Y sorprendió que me dio el resultado esperado.
pensé que sería comportarse como:
if ((a == b) == c):
# do something
Pero es obvio que no lo hizo. Parece que Python está tratando la primera declaración de forma diferente a la segunda, lo cual es bueno, pero no pude encontrar ninguna documentación o explicación al respecto.
He probado y tiene la siguiente:
In [1]: 2 == 2 == 2
Out[1]: True
In [2]: (2 == 2) == 2
Out[2]: False
le importaría que alguien me explique cuáles son las normas relativas a tal "encadenamiento" de ==
(o !=
)?
Muchas gracias.
Formalmente, si a, b, c, ..., y, z son expresiones y op1, op2, ..., opN son operadores de comparación, entonces op1 b op2 c ... y opN z es equivalente a a op1 b y b op2 c y ... y opN z, excepto que cada expresión se evalúa como máximo una vez. @ http://docs.python.org/reference/expressions.html – georg
Limpio, ¿eh? También puede hacer 'a Thomas
No es que me preocupe demasiado, pero ¿puede el infractor explicar por qué bajó la votación? – ereOn