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:
cadena1 = "caso"
cadena2 = "caos"
print(cadena1 > cadena2)
print(cadena1 == cadena2)
print(cadena1 < cadena2)
En este caso, la salida en pantalla será:
Solo la primera comparación del ejemplo anterior es verdadera: recién hay diferencia de caracteres en la cuarta posición donde
cadena1
posee unao
ycadena2
posee unas
, siendo lao
menor en valor posicional a las
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==
yFalse
para los demás operadores de comparación.Si las cadenas son diferentes, la comparación devolverá
True
oFalse
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:
cadena1 = "num_10"
cadena2 = "num_2"
print(cadena1 > cadena2)
print(cadena1 == cadena2)
print(cadena1 < cadena2)
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 caracter1
ycadena2
posee un caracter2
, siendo el1
menor en valor posicional al2