Blog
Formato y concatenación de strings en Python
- Publicado por: Rafael Fernandez
- Categoría: Blog

Una de las tareas más comunes que necesitarás realizar en cualquier lenguaje de programación involucra fusionar o combinar strings (cadenas de texto). A esto se le conoce como concatenación, a continuación explicaremos más sobre como realizar formato y concatenación de strings en Python.
La mejor descripción es cuando tomas dos variables string ya declaradas y las fusionas para que sean una ola.
Por ejemplo, una string puede ser “hola ” y la otra puede ser “mundo”. Cuando concatenas ambas strings el resultado se convierte en otro objeto string diferente con el valor “hola mundo”.
El formato y concatenación de strings en Python puede realizarse a traves de:
- Formato de strings en Python con el operador %
- Formato de string con los operadores {} y la función str.format()
- Usando las cadenas F
- Usando el método str.join()
A continuación describiremos como realizar concatenación de strings y formato en Python. Hay diferentes formas de hacer esto así que discutiremos los métodos más comunes. Luego echaremos un vistazo al formato en Python y como funciona.
Contatenación de strings en Python
En Python, hay varias formas distintas de concatenar o combinar strings. La string resultante de la concatenación también es tratada como un objeto string por Python. Con el fin de fusionar dos strings en un único objeto string debemos usar el operador “+”. Veamos un ejemplo:
str_1 = 'Hola ' str_2 = 'mundo' str_1 + str_2 # El resultado es: Hola mundo
La última línea de este ejemplo muestra la concatenación de la cual resultará un nuevo objeto string con el valor “Hola mundo”. Pero, ¿que método usar si tenemos un valor entero el cual quiero mostrar con un texto?.
>>> print(‘rojo’ + ‘amarillo’) rojoamarillo >>> print (‘rojo’ * 3) rojorojorojo >>> print ‘rojo’ + 3 Traceback (most recent call last): File “”, line 1, in TypeError: cannot concatenate ‘str’ and ‘int’ objects >>>
Nuestro primer intento es concatenar dos strings y el código se ejecuta sin ningún problema. Así mismo cuando multiplicamos una string por un entero, obtenemos esa string repetida tantas veces la cantidad de nuestro entero, en este caso rojorojorojo
ya que ejecutamos la línea print('rojo' * 3)
. Pero cuando intentamos concatenar el entero 3 a la string ‘rojo’, Python nos da un error:
TypeError: cannot concatenate ‘str’ and ‘int’ objects
este error nos dice que no podemos concatenar una string con un valor numérico. Para que esto sea posible, debemos convertir el entero en un objeto string que pueda ser concatenado.
>>> print('rojo' + str(3)) rojo3 >>>
La función str(arg) de Python es una de las funciones predeterminadas y su función es la de convertir a string el objeto que se le dé como argumento (sólo si el objeto tiene una representación en string).
Formato de strings en Python
En Python, podemos hacer uso de dos métodos diferentes para la interpolación de strings.
La interpolación de cadenas de texto (strings) se refiere al proceso de evaluar el valor de una string que tiene uno o más marcadores de posición. En pocas palabras, ayuda a los desarolladores con el formato y concatenación de strings.
Probablemente hayas escuchado antes de este tema ya que es crucial en muchos lenguajes de programación, especialmente en Python.
Formato de strings en Python con el operador % (método desactualizado)
Antes de explicar el funcionamiento de este operador es importante tener en cuenta que el operador (%) para strings esta desactualizado a partir de Python 3.1 y versiones más nuevas. Las strings en Python tienen una operación predeterminada que puede ser utilizada con el operador %. Esta nos permite realizar formato de strings con marcadores de posición. Si alguna vez has trabajado con una función al estilo de printf
de C, reconocerás el funcionamiento de este oprador facilmente. Aquí tenemos un ejemplo:
>>> nombre = 'Eduardo' >>> 'Hola, %s' % nombre "Hola, Eduardo"
Lo que este fragmento de código hará es reemplazar los marcadores de posición (%s) dentro de la string con la o las variables que se encuentren después del operador (%).
Formato de string con los operadores {} y la función str.format()
En Python 3 se introdujo una nueva forma de darle formato a las string, la cual fue respaldada más tarde a las versiones anteriores. Este “nuevo estilo” para formatear las strings, elimina la sintáxis de los marcadores de posición especiales (%s) y hace que la sintáxis sea mucho más sencilla. El formato de strings ahora se realiza llamando a la función str.format()
en un objeto string.
Veamos un ejemplo sencillo, puedes usar format()
para hacer posicionamientos simples, así como con el método anterior:
>>> nombre = 'Eduardo' >>> apellido = 'Hernandez' >>> 'Hola, {} {}'.format(nombre, apellido) 'Hola, Eduardo Hernandez'
Lo que hace este código es reemplazar los marcadores de posición ({}) con las variables que tenga como argumentos, en este caso, la variable “nombre” es la primera en los argumentos que le pasamos a la función así que es el valor escogido para estar en el primer marcador de posicíon de la string.
Otra característica de esta función es que podemos utilizar los marcadores de posición junto con un índice para así especificar el lugar en el que queremos que sean posicionados los argumentos. Ejemplo:
>>>print('Apellido: {1}, Nombre: {0}'.format(nombre, apellido)) 'Apellido: Hernandez, Nombre: Eduardo'
El índice 1 toma el argumento de la función str.format()
en la posición 1 (contando desde 0, como una lista) que en este caso es la variable apellido
.
Todas las formas de usar la función str.format()
en Python:
# orden predeterminado(implicito) orden_pre = "{}, {} y {}".format('Luisa','Mario','Pedro') print('\n--- Orden Predeterminado ---') print(orden_pre) # orden usando el argumento posicional orden_pos = "{1}, {0} and {2}".format('Luisa','Mario','Pedro') print('\n--- Orden de Posicion ---') print(orden_pos) # orden usando argumento de palabra clave orden_palabra = "{l}, {m} and {p}".format(l='Luisa', m='Mario',p='Pedro') print('\n--- Orden por palabra clave ---') print(orden_palabra)
Usando las cadenas F para concatenar strings en Python
λ python Python 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 15 2019, 00:11:34) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> dia = "miércoles" >>> dia_num = "15" >>> mes = 'abril' >>> año = "2020" >>> >>> print(f"Hoy es {dia} {dia_num} de {mes} del año {año}") Hoy es miércoles 15 de abril del año 2020 >>>
Usando el método str.join() para concatenar strings en Python
El método str.join()
retorna una string formada por una secuencia de argumentos, unidos por un separador.
Ejemplo:
>>> lista_1 = [ '1', '2', '3', '4'] >>> sep = '-' >>> nueva_string = sep.join(lista_1) >>> print(nueva_string) '1-2-3-4'
El método str.join()
toma como argumento un objeto lista o iterable ( objeto capaz de retornar sus elementos, uno a la vez, ejemplo: List, Tuple, String, Dictionary y Set) y retorna una string concatenada con los elementos del objeto iterable.
La string que separará a los elementos del iterable también puede ser una string vacía (“”), esto significa que los elementos serán concatenados sin ningún separador, uno detrás de otro.
>>> lista_2 = ['p', 'y', 't', 'h', 'o', 'n'] >>> print(''.join(lista_2)) 'python'
➡ Te invitamos a realizar el Curso de Python para Principiantes: