¿Cómo se evalúa 1 == 2 == 2? [duplicar]
Aug 22 2020
Ejecutar esto en el REPL me da
>>> 1 == 2 == 2
False
Lo que me sorprendió, en C esto evaluaría a 1. Esperaba que el lado derecho evaluara Truey 1 == Trueestá Trueen Python. Por ejemplo, esto se evalúa como esperaría:
>>> 1 == (2 == 2)
True
¿Cómo analiza Python y evalúa la primera expresión? Esto, se evalúa de la misma manera, pero esto es lo que esperaría porque ==es asociativo a la derecha y evaluaría a 0 en C
>>> 2 == 2 == 1
False
Respuestas
7 Noname Aug 22 2020 at 00:22
Esto se debe al fenómeno de encadenamiento de operadores
Un ejemplo :
>>> 1==2
=> False
>>> 2!=3
=> True
>>> (1==2) and (2!=3)
# False and True
=> False