Una rareza de Python: La asociatividad de los comparadores
Algunos lenguajes de programacíon de uso común, como C y C++, hacen que sus operadores de comparacion sean asociativos, por lo que presentan el problema de que expresiones como 2 < 1 < 4 producen un resultado que parece ilógico. Al ser asociativo por la izquierda el operador de comparacion <, se evalúa primero la subexpresion 2 < 1. El resultado es falso, que en C y C++ se representa con el valor 0. A continuacion se evalúa la comparación 0 < 4, cuyo resultado es… ¡cierto! Asi pues, para C y C++ es cierto que 2 < 1 < 4.
Pascal es más rigido aún y llega a prohibir expresiones como 2 < 1 < 4. En Pascal hay un tipo de datos denominado boolean cuyos valores válidos son true y false. Pascal no permite operar entre valores de tipos diferentes, así que la expresion 2 < 1 se evalúa al valor boolean false, que no se puede comparar con un entero al tratar de calcular el valor de false < 4. En consecuencia, se produce un error de tipos si intentamos encadenar comparaciones.
La mayor parte de los lenguajes de programación convencionales opta por la solución del C o por la solución del Pascal. Cuando aprendas otro lenguaje te costará <<deshabituarte>> de la elegancia con que Python resuelve los encadenamientos de comparaciones.









jaja la verdad es k si
nos acostumbramos a la manera de programar en otros lenguajes
pascal me daba miedo xP
1A mi no me da miedo ningun lenguaje, solo que si hay algunos que me dan mas que hueva como es el caso de JAVA…no mas ni madre que me gusta ese lenguaje…bdaaaaa =-S. Prefiero no escribir tanto jejejje. =-p
2