Encadenamiento de operadores de comparación en Python

Isaac Tony 3 abril 2022
Encadenamiento de operadores de comparación en Python

Las comparaciones son una parte esencial de todos los lenguajes de programación.

En Python, los operadores de comparación se utilizan para comparar valores y devuelven True o False según la condición que se esté probando. Estas condiciones incluyen determinar si los valores del lado izquierdo o derecho son iguales, mayores o menores que un cierto valor.

A diferencia de los operadores aritméticos, que tienen precedencia, los operadores de comparación tienen la misma prioridad, que es menor que la de otros operadores como los operadores bit a bit y los operadores aritméticos.

Los operadores de comparación no están restringidos a tipos numéricos, sino que también pueden comparar tipos de secuencias, tipos de conjuntos y valores booleanos.

Por lo general, los operadores de comparación se combinan mediante operadores lógicos para formar declaraciones condicionales. Los operadores de comparación también se pueden usar junto con declaraciones if y bucles como los bucles for y while.

En el siguiente ejemplo, los operadores de comparación se han utilizado con operadores lógicos para formar declaraciones condicionales que prueban la igualdad de dos valores aritméticos.

x = 5
y = 7
z = 10

if y > x and z > y:
    print("z is the greatest number")
else:
    print("z is not the greatest number")

Producción :

z is the greatest number

Como se muestra en el ejemplo a continuación, podemos encadenar los operadores en lugar de usar simultáneamente los operadores lógicos y los operadores de comparación. Este método es más preciso y fácil de entender.

x = 5
y = 7
z = 10

if x < z > y:
    print("z is the greatest number")
else:
    print("z is not the greatest number")

Producción :

z is the greatest number

En el ejemplo anterior, hemos encadenado los operadores de comparación para determinar si z es el número mayor. De manera similar, los operadores de comparación pueden determinar si ciertos números son iguales usando el operador igual a y no igual a.

length = 23
height = 23
width = 6

if length == height and height == width and width == length:
    print("This is a cube")

else:
    print("This is a cuboid")

Producción :

This is a cuboid

En el código anterior, height, width y length se evalúan dos veces antes de completar todos los bucles de comparación.

Sin embargo, al encadenar operadores arbitrariamente, podemos reescribir el código anterior con mayor precisión, como se muestra en el siguiente ejemplo. El siguiente ejemplo solo evaluó la expresión una vez.

if length == height == width:
    print("This is a cube ")

else:
    print("This is a cuboid ")

Producción :

This is a cuboid 

También podemos usar el concepto de encadenar operadores para asegurarnos de que una secuencia de ciertos valores sea igual. En el ejemplo que se muestra a continuación, probamos sin esfuerzo la igualdad de tres valores diferentes encadenando los valores.

a = 3
b = 5
c = 9

if a == b == c:
    print("All the variables are equal")
else:
    print("Variable are not the same")

Producción :

Variable are not the same

Dado que el operador de igualdad es transitivo, podemos concluir que, si a == b y b == c, el valor de b debe ser igual a c.

Sin embargo, debemos tener cuidado ya que la misma equivalencia o no equivalencia no puede implicarse en operadores de comparación no transitivos como el operador != utilizado para probar la no igualdad.

De manera similar, también podemos encadenar el operador < para determinar si los números en una secuencia son estrictamente ascendentes o no.

a = 3
b = 5
c = 9
d = 11
e = 13


if a < b < c < d < e:
    print("This is an ascending sequence of numbers")
else:
    print("This is not an ascending sequence of numbers")

Producción :

This is an ascending sequence of numbers
Autor: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

Artículo relacionado - Python Operator