Aunque en todas estas clases hemos trabajado con cadenas de texto, es preciso dedicar un tiempo específico en algunas propiedades de las mismas. En primera instancia, las cadenas de texto pueden considerarse como una secuencia de carácteres ordenados. Por ejemplo el string
x = "Hola mundo"
print(x)
Hola mundo
puede pensarse como un conjunto ordenado $\{H,o,l,a, \ \ ,m,u,n,d,o\}$, donde también consideramos al espacio en blanco entre hola y mundo. Además, a cada carácter de las cadenas de texto le podemos asignar un índice. Por ejemplo, H tiene asignado el índice cero, la primer o tiene asignado el índice 1 y el espacio en blanco tiene asignado el índice 4. Para acceder a los elementos de una cadena de texto basta con usar []
después del nombre de la variable a la cual está asignada dicha cadena, donde el parámetro dentro de los corchetes es el índice al cual deseamos acceder. Por ejemplo
print(x[0], " ", end = " ")
print(x[1], " ", end = " ")
print(x[2], " ", end = " ")
print(x[3], " ", end = " ")
print(x[4], " ", end = " ")
print(x[5], " ", end = " ")
print(x[6], " ", end = " ")
print(x[7], " ", end = " ")
print(x[8], " ", end = " ")
print(x[9], " ", end = " ")
H o l a m u n d o
Además, podemos saber cuántos carácteres (incluidos los espacios en blanco) tiene una cadena de texto mediante la función predefinida len()
. Por ejemplo
print(len(x))
10
Indica que nuestra cadena de texto "Hola mundo
tiene 10 carácteres. Así, como alternativa al código del In [4] usando
for i in range(0, len(x)):
print(x[i], " ", end = " ")
H o l a m u n d o
Por otro lado, también es posible iterar sobre cadenas de texto:
for i in x:
print(i)
H o l a m u n d o
El cual representa que, para cada letra i
en la cadena de texto "Hola mundo"
, se imprimirá i
, arrojándonos así todos los carácteres de dicha cadena.
También es posible acceder a subconjuntos de carácteres de una cadena, por ejemplo
print(x[3:7]) # Del índice 3 al índice 6
print(x[:6]) # Del comienzo al índice 5
print(x[7:]) # Del índice 7 al final
a mu Hola m ndo
Consideremos la siguiente cadena de texto
titulo = "Teorema de Wedderburn-Artin, álgebra moderna"
print(titulo)
Teorema de Wedderburn-Artin, álgebra moderna
Utilizando titulo.split("")
podemos dividir la cadena de texto palabra por palabra, donde se crea una lista cuyos elementos son las palabras de la cadena, de modo que también podemos acceder a los elementos de dicha lista utilizando los corchetes y el índice al cual deseamos acceder:
print(titulo.split(" "))
print(type(titulo.split(" ")))
print(titulo.split(" ")[0])
['Teorema', 'de', 'Wedderburn-Artin,', 'álgebra', 'moderna'] <class 'list'> Teorema
O también podemos dividir la cadena de texto por las palabras agrupadas por comas, esto es
lista_palabra_por_palabra = titulo.split(" ")
print(lista_palabra_por_palabra)
#----------------------------------------
lista_por_comas = titulo.split(",")
print(lista_por_comas)
print("-" * 70)
print(lista_por_comas[0])
print(lista_por_comas[1])
['Teorema', 'de', 'Wedderburn-Artin,', 'álgebra', 'moderna'] ['Teorema de Wedderburn-Artin', ' álgebra moderna'] ---------------------------------------------------------------------- Teorema de Wedderburn-Artin álgebra moderna
Notemos nuevamente como se consideran los espacios en blanco.
Es posible contar cuántas veces aparece un carácter dentro de nuestra cadena de texto, para ello basta con utilizar count("")
, donde dentro de las comillas debemos ingresar el carácter que deseamos contar dentro de nuestra cadena:
saludo = "Hola cómo estás"
print(f'Número de espacios en blanco: {saludo.count(" ")}')
print(f'Número de letras o: {saludo.count("o")}')
print(f'Número de letras á: {saludo.count("á")}')
Número de espacios en blanco: 7 Número de letras o: 2 Número de letras á: 1
Si tenemos la cadena "Hola mundo"
podemos reemplazar Hola por Adios usando por ejemplo
y = "Hola mundo"
print(y)
print("-" * 70)
print(y.replace("Hola", "Adios"))
Hola mundo ---------------------------------------------------------------------- Adios mundo
Así como podíamos acceder a los carácteres de una cadena o a los elementos de una lista por medio de un índice, podemos también buscar el índice de una palabra dentro de una cadena de texto. Por ejemplo, de la siguiente cadena de texto:
y = "Hola mundo soy yo"
print(y)
Hola mundo soy yo
podemos utilizar find("")
, donde dentro de las comillas va la palabra (o palabras) en cuestión. Veamos algunos casos
print(y.find("soy"))
11
print(y.find("soy"))
arroja el índice de la primera letra de la subcadena soy
dentro de la cadena de texto y
. En efecto vemos que el índice de la letra s
es el 11
for i in range(0,len(y)):
print(f'Índice: {i}, carácter: {y[i]}')
Índice: 0, carácter: H Índice: 1, carácter: o Índice: 2, carácter: l Índice: 3, carácter: a Índice: 4, carácter: Índice: 5, carácter: m Índice: 6, carácter: u Índice: 7, carácter: n Índice: 8, carácter: d Índice: 9, carácter: o Índice: 10, carácter: Índice: 11, carácter: s Índice: 12, carácter: o Índice: 13, carácter: y Índice: 14, carácter: Índice: 15, carácter: y Índice: 16, carácter: o
Podemos ver si una cadena de texto comienza con cierta letra o no, y si termina con cierta letra o no según sea el caso
print(y)
Hola mundo soy yo
# veamos si la PRIMER letra es la H
print(y.startswith("H"))
# veamos si la PRIMER letra es la h
print(y.startswith("h"))
# veamos si la ÚLTIMA letra es la o
print(y.endswith("o"))
# veamos si la ÚLTIMA letra es la a
print(y.endswith("a"))
True False True False
Por otro lado, podemos convertir de mayúsculas a minúsculas y viceversa
# convertir a mayúsculas usando -upper()-
print(y.upper())
# convertir a minúsculas usando -lower()-
print(y.lower())
HOLA MUNDO SOY YO hola mundo soy yo