Link Search Menu Expand Document

Operadores relacionales

Los operadores relacionales, o tambi茅n llamados comparison operators nos permiten saber la relaci贸n existente entre dos variables. Se usan para saber si por ejemplo un n煤mero es mayor o menor que otro. Dado que estos operadores indican si se cumple o no una operaci贸n, el valor que devuelven es True o False. Veamos un ejemplo con x=2 e y=3

OperadorNombreEjemplo
==Igualx == y = False
!=Distintox != y = True
>Mayorx > y = False
&ltMenorx &lt y = True
>=Mayor o igualx >= y = False
&lt=Menor o igualx &lt y = True
x=2; y=3
print("Operadores Relacionales")
print("x==y =", x==y) # False
print("x!=y =", x!=y) # True
print("x>y  =", x>y)  # False
print("x<y  =", x<y)  # True
print("x>=y =", x>=y) # False
print("x<=y =", x<=y) # True

Operador ==

El operador == permite comparar si las variables introducidas a su izquierda y derecha son iguales. Muy importante no confundir con =, que es el operador de asignaci贸n.

print(4==4)          # True
print(4==5)          # False
print(4==4.0)        # True
print(0==False)      # True
print("asd"=="asd")  # True
print("asd"=="asdf") # False
print(2=="2")        # False
print([1, 2, 3] == [1, 2, 3]) # True

Operador !=

El operador != devuelve True si los elementos a comparar son iguales y False si estos son distintos. De hecho, una vez definido el operador ==, no ser铆a necesario ni explicar != ya que hace exactamente lo contrario. Definido primero, definido el segundo. Es decir, si probamos con los mismos ejemplo que el apartado anterior, veremos como el resultado es el contrario, es decir False donde era True y viceversa.

print(4!=4)          # False
print(4!=5)          # True
print(4!=4.0)        # False
print(0!=False)      # False
print("asd"!="asd")  # False
print("asd"!="asdf") # True
print(2!="2")        # True
print([1, 2, 3] != [1, 2, 3]) # False

Operador >

El operador > devuelve True si el primer valor es mayor que el segundo y False de lo contrario.

print(5>3) # True
print(5>5) # False

Algo bastante curioso, es como Python trata al tipo booleano. Por ejemplo, podemos ver como True es igual a 1, por lo que podemos comprar el tipo True como si de un n煤mero se tratase.

print(True==1)     # True
print(True>0.999)  # True

Para saber m谩s: De hecho, el tipo bool en Python hereda de la clase int. Si quieres saber m谩s acerca del tipo bool en Python puedes leer la PEP285

Tambi茅n se pueden comparar listas. Si los elementos de la lista son num茅ricos, se comparar谩 elemento a elemento.

print([1, 2] > [10, 10]) # False

Operador <

El operador < devuelve True si el primer elemento es mayor que el segundo. Es totalmente v谩lido aplicar operadores relacionales como < sobre cadenas de texto, pero el comportamiento es un tanto dif铆cil de ver a simple vista. Por ejemplo abc es menor que abd y A es menor que a

print("abc" < "abd") # True
print("A"<"a")       # True

Para el caso de A y a la explicaci贸n es muy sencilla, ya que Python lo que en realidad est谩 comparando es el valor entero Unicode que representa tal caracter. La funci贸n ord() nos da ese valor. Por lo tanto cuando hacemos "A"<"a" lo que en realidad hacemos es comprar dos n煤meros.

print(ord('A')) # 65
print(ord('a')) # 97

Para saber m谩s: En el siguiente enlace tienes m谩s informaci贸n de como Python compara variables que no son n煤meros.

Operador >=

Similar a los anteriores, >= permite comparar si el primer elemento es mayor o igual que es segundo, devolviendo True en el caso de ser cierto.

print(3>=3)           # True
print([3,4] >= [3,5]) # False

Operdor <=

De la misma manera, <= devuelve True si el primer elemento es menor o igual que el segundo. Nos podemos encontrar con cosas interesantes debido a la precisi贸n num茅rica existente al representar valores, como el siguiente ejemplo.

print(3<=2.99999999999999999)