Strings en python



@eduardo_gpg

Número de visitas 1530

Tiempo de lectura 4 min

30 Agosto 2020

El tema de strings es sin duda uno de mis temas favoritos en cualquier lenguaje de programación orientado a objetos, y en Python por supuesto no es la excepción. Es por ello que en esta ocasión me gustaría hablemos un poco de los strings, expliquemos exactamente qué son, veamos algunos métodos y tips que nos pueden ser de utilidad y por supuesto aprendamos a utilizarlos.

Bien, sin más que decir, comencemos.

Strings

Comencemos con la pregunta obligada ¿Qué son los strings? Verás, los strings en términos simples no son más que una cadena de caracteres. A través de ellos seremos capaces de representar palabras, sentencias, párrafos e inclusive archivos completos.

Para poder crear nuestros propios strings lo haremos de dos maneras diferentes, ya sea utilizando comillas simples ('') o utilizando comillas dobles ("").

>>> mensaje = 'Hola mundo utilizando comillas simples'
>>> mensaje = "Hola mundo utilizando comillas dobles"

Ahora, quizás te estes preguntando, ¿Cuándo debemos utilizar comillas simple o comillas dobles? La respuesta es sencilla, si en nuestro string debemos utilizar comillas dobles entonces instanciamos con comillas simples, y viceversa, si en nuestro string debemos utilizar comillas simples instanciamos con comillas dobles.

>>>'Hola, ahora utilizamos "comillas dobles" dentro del strings'
'Hola, ahora utilizamos "comillas dobles" dentro del strings'

>>>"Hola, ahora utilizamos 'comillas simples' dentro del strings"
"Hola, ahora utilizamos 'comillas simples' dentro del strings"

De forma personal utilizo mucho más las comillas simples que las comillas dobles.

A partir de la versión 3 de Python es posible utilizar caracteres codificación UTF-8. Es decir, podemos utilizar emojis 🥳.

En dado caso deseemos crear un string con múltiples saltos de línea haremos uso, ya sea de triples comillas simples o triples comillas dobles.

>>> '''Este es un mensaje 
con múltiples saltos 
de línea 
cómo puedes observar. 
'''  

'Este es un mensaje\ncon múltiples saltos\nde línea\ncómo puedes observar.\n'

Strings como listas

Como mencionamos anteriormente, un string no es más que una cadena de caracteres, por lo tanto a cada carácter les corresponde una posición en la misma. Con esto en mente, si nosotros queremos conocer exactamente qué carácter se encuentra en una posición podemos hacerlo, basta con hacer uso de su índice.

>>> mensaje = 'Hola mundo utilizando comillas simples'

# Primer caracter
>>> mensaje[0]
H

# Último caracter
>>> mensaje[ len(mensaje) - 1 ]
s

# Último caracter
>>> mensaje[-1]
s

Si deseamos iterar un string, carácter por carácter, podemos hacer uso de un ciclo for each.

for caracter in 'Hola mundo desde un string':
    print(caracter)

H
o
l
a

m
u
n
d
o
...

Algo que debemos tener muy en cuenta es que en Python los strings son objetos inmutables, es decir, objetos que una vez hayamos instanciado estos no podrán modificar su valor.

Si intentamos modificar el valor de un carácter obtendremos un error. Por ejemplo, reemplazamos el primer carácter de nuestro strings, de 'H' a 'h'.

>>> mensaje = 'Hola mundo utilizando comillas simples'
>>> mensaje[0] = 'h'

TypeError: 'str' object does not support item assignment

Un Post que te recomiendo ampliamente es el de: ¿Realmente Conoces Los Strings en Python?, donde hablamos de acerca de los string interning, un tema super pro que sin duda debes conocer.

En los casos nosotros debemos "modificar" un string, será necesario crea uno nuevo a partir de otros, y para ello existen diferentes formas de hacerlo. Aquí te comparto un Post donde te lo explicamos más en detalle.

Algo curioso es que podemos multiplicar string.

'Hola' * 3
'HolaHolaHola'

En primera instancia puede sonar algo poco útil, sin embargo puede con el enfoque correcto sin duda podrás sacarle provecho.


Al igual que con las listas y las tuplas, con los strings es posible generar slices.

>>> 'Hola mundo'[0:3]
'Hol'

>>> 'Hola mundo'[:3]
'Hol'

>>> 'Hola mundo'[5:]
'mundo'

>>> 'Hola mundo'[2:9:2]
'l ud'

>>> 'Hola mundo'[::2]
'Hl ud'

# Invertir string
>>> 'Hola mundo'[::-1] 
'odnum aloH'

Métodos

Al los strings ser objetos, nos ofrecen una amplia variedad de métodos que sin duda nos serán de gran utilidad. Aquí te listo un par de ellos, sin embargo no son los únicos, pero sí los que consideramos que haremos uso en nuestro día a día.

  • El método split nos permite generar una lista a partir de un string a partir de un carácter.

Un espacio en blanco también es considerado un carácter.

# Generamos un listado de palabras

>>> 'Nos encontramos un post de PyWombat'
 ['Nos', 'encontramos', 'un', 'post', 'de', 'PyWombat']
  • El método join nos permite crear un string a partir de un listado.

Unimos todos los elementos a partir del string.

>>> ' '.join(['Hola', 'Mundo', 'desde PyWombat'])  
'Hola Mundo desde PyWombat'

>>> '-'.join(['Java', 'Python', 'C#', 'Ruby'])                                                 
'Java-Python-C#-Ruby'
  • El método replace nos permite reemplazar uno o múltiples caracteres de nuestro string.
# Remplazamos las 'e' por 'x'
>>> 'Test example'.replace('e', 'x')
'Txst xxamplx'
  • Los métodos lower y upper nos permiten convertir todos los caracteres del string a minúsculas o mayúsculas respectivamente.
>>> 'hola mundo'.upper()
'HOLA MUNDO'

>>> 'Hola Mundo'.lower()
'hola mundo'
  • Con el método strip seremos capaces de remover espacios en blancos al inicio o al final del string.
>>>'    Nuevo mensaje con espacios    '.strip()
'Nuevo mensaje con espacios'
  • El método title convierte el primer carácter de cada palabra en mayúsculas.
>>> 'eduardo ismael'.title()                                                                   
'Eduardo Ismael'
  • Utilizando el método find seremos capaces de conocer la posición donde comienza un sub string. Si el sub string no existe dentro de la cadena el método retornará -1.
>>> 'Nuevo tutorial'.find('tutorial')
6

>>> 'Nuevo tutorial'.find('tutorials')
-1

Aquí un pequeño paréntesis, si en dado caso queremos conocer si un sub string se encuentre en otro, podemos hacer uso de la palabra reservada in.

>>> 'demo' in 'Hola mundo'
False

>>> 'demo' in 'Hola mundo desde un post demo'
True

Ejercicios

Aquí un par de ejercicios con los que puedes practicar todo aprendido en esta ocasión.


¿El contenido te resulto de ayuda?

Para poder dejar tu opinión es necesario ser un usuario autenticado. Login

Más Tips y Ejercicios 🐍

Adquiere una subscripción PyWombat por tan solo $3 USD. al mes.

Conoce los beneficios de ser usuario premium:
Niveles desbloqueados: Ten accesos a todos los niveles de ejercicios. 🔓
Nuevo límite: Incrementa tu límite de ejercicios por semana. 🚀
Contenido único: Recibe semanalmente recursos exclusivos de Python (Videos, Artículos y Capitulos del libro PyWombat, comienza como desarrollador Python. 🐍