freeCodeCamp/guide/spanish/python/comparisons/index.md

4.0 KiB

title localeTitle
Python Comparisons Comparaciones de Python

Python Docs - Comparaciones

Hay ocho operaciones de comparación en Python. Todos tienen la misma prioridad (que es más alta que la de las operaciones booleanas). Las comparaciones pueden ser encadenadas arbitrariamente; por ejemplo, x < y <= z es equivalente a x < y and y <= z , excepto que y se evalúa solo una vez (pero en ambos casos z no se evalúa en absoluto cuando se encuentra que x < y es falso).

Esta tabla resume las operaciones de comparación:

Operacion | Sentido
--------- | -----------------------
< | estrictamente menos que
<= | Menos que o igual a > | estrictamente mayor que >= | Mayor qué o igual a == | igual a != | no igual a is | identidad de objeto
is not | identidad de objeto negado

Los objetos de diferentes tipos, excepto los diferentes tipos numéricos, nunca se comparan igual. Además, algunos tipos (por ejemplo, objetos de función) admiten solo una noción degenerada de comparación donde dos objetos de ese tipo son desiguales. Los operadores < , <= , > y >= generarán una excepción TypeError al comparar un número complejo con otro tipo numérico incorporado, cuando los objetos son de diferentes tipos que no pueden compararse, o en otros casos donde no hay definidos ordenando

Las instancias no idénticas de una clase normalmente se comparan como no iguales a menos que la clase defina el __eq__() .

Las instancias de una clase no pueden ordenarse con respecto a otras instancias de la misma clase u otros tipos de objetos, a menos que la clase defina suficientes métodos __lt__() , __le__() , __gt__() y __ge__() (en general , __lt__() y __eq__() son suficientes, si desea los significados convencionales de los operadores de comparación).

El comportamiento de los operadores is y is not puede ser personalizado; también se pueden aplicar a cualquiera de los dos objetos y nunca generar una excepción.

También podemos encadenar < y > operadores juntos. Por ejemplo, 3 < 4 < 5 devolverá True , pero 3 < 4 > 5 no. También podemos encadenar el operador de igualdad. Por ejemplo, 3 == 3 < 5 devolverá True pero 3 == 5 < 5 no lo hará.

Comparaciones de igualdad - "es" vs "=="

En Python, hay dos operadores de comparación que nos permiten verificar si dos objetos son iguales. El operador is y el operador == . Sin embargo, hay una diferencia clave entre ellos!

La diferencia clave entre 'es' y '==' se puede resumir como:

  • is usado para comparar identidad
  • == se usa para comparar la igualdad

Ejemplo

Primero, crea una lista en Python.

myListA = [1,2,3] 

A continuación, crea una copia de esa lista.

myListB = myListA 

Si usamos el operador '==' o el operador 'is', ambos darán como resultado una salida True .

>>> myListA == myListB # both lists contains similar elements 
 True 
 >>> myListB is myListA # myListB contains the same elements 
 True 

Esto se debe a que myListA y myListB están apuntando a la misma variable de lista, que definí al principio de mi programa Python. Ambas listas son exactamente iguales, tanto en identidad como en contenido.

Sin embargo, ¿qué pasa si ahora creo una nueva lista?

myListC = [1,2,3] 

La ejecución del operador == aún muestra que ambas listas son iguales, en términos de contenido.

>>> myListA == myListC 
 True 

Sin embargo, la realización de la is operador ahora producir una False salida. Esto se debe a que myListA y myListC son dos variables diferentes, a pesar de que contienen los mismos datos. A pesar de que se ven iguales, son diferentes .

>>> myListA is myListC 
 False # both lists have different reference 

Para resumir:

  • Una is salidas de expresión True si ambas variables están apuntando a la misma referencia
  • Una expresión == produce True si ambas variables contienen los mismos datos