Saltar a contenido

Comparación de cadenas de caracteres

En Python, dentro de una expresión, las cadenas de caracteres se pueden comparar utilizando los operadores de comparación, como ==, !=, >, <, >= y <=.

Cuando se comparan dos cadenas de caracteres, Python compara los caracteres de las cadenas uno a uno, comenzando por el primer carácter de cada cadena. La comparación se realiza en función del valor posicional de los caracteres en la tabla de códigos ASCII o Unicode.

Por ejemplo, si tienes dos cadenas de caracteres cadena1 y cadena2, la comparación se realiza de la siguiente manera:

Python
cadena1 = "caso"
cadena2 = "caos"

print(cadena1 > cadena2)
print(cadena1 == cadena2)
print(cadena1 < cadena2)

En este caso, la salida en pantalla será:

Terminal (Entrada/Salida)
True
False
False

Solo la primera comparación del ejemplo anterior es verdadera: recién hay diferencia de caracteres en la cuarta posición donde cadena1 posee una o y cadena2 posee una s, siendo la o menor en valor posicional a la s

La comparación de cadenas de caracteres en Python es sensible a mayúsculas y minúsculas, por lo que las mayúsculas se consideran menores que las minúsculas. Por ejemplo, la cadena "A" se considera menor que la cadena "a".

Si las cadenas son iguales, la comparación devolverá True para el operador == y False para los demás operadores de comparación.

Si las cadenas son diferentes, la comparación devolverá True o False dependiendo de la posición del primer carácter diferente en las cadenas.

Si una cadena es un prefijo de la otra, la cadena más corta se considera menor que la cadena más larga. Por ejemplo, "abc" se considera menor que "abcd".

Si las cadenas son iguales hasta un cierto punto, pero una cadena es más larga que la otra, la cadena más larga se considera mayor que la cadena más corta. Por ejemplo, "abc" se considera menor que "abcd".

Si las cadenas son iguales en longitud pero diferentes en contenido, la cadena que tiene el carácter con el valor ASCII más bajo en la primera posición en la que difieren se considera menor que la otra cadena.

Si las cadenas son iguales en longitud pero diferentes en contenido, la cadena que tiene el carácter con el valor ASCII más alto en la primera posición en la que difieren se considera mayor que la otra cadena.

Comparación de caracteres numéricos almacenados como texto

Lo mismo ocurre con la comparación de caracteres numéricos cuando estos son almacenados como caracteres de texto:

Python
cadena1 = "num_10"
cadena2 = "num_2"

print(cadena1 > cadena2)
print(cadena1 == cadena2)
print(cadena1 < cadena2)
Terminal (Entrada/Salida)
False
False
True

Solo la tercera comparación del ejemplo anterior es verdadera: recién hay diferencia de caracteres en la quinta posición donde cadena1 posee un caracter 1 y cadena2 posee un caracter 2, siendo el 1 menor en valor posicional al 2

¡Para recordar!

En Python, la comparación es case sensitive, es decir, que distingue entre mayúsculas y minúsculas:

Python
cadena1 = "Mundo"
cadena2 = "mundo"
print(cadena1 == cadena2)
Terminal (Entrada/Salida)
False