Blog / Concatenación de strings en Python

Concatenación de strings en Python

por SW Team

Concatenación de strings en Python

La concatenación de strings es una operación muy frecuente en programación. En Python, existen varias formas de realizar la unión de strings. El propósito de este blog es explorar diferentes métodos para concatenar cadenas en un programa Python.

Podemos llevar a cabo la unión de cadenas de las siguientes maneras:

  1. Utilizando el operador +.
  2. Empleando el método join().
  3. Usando el operador %.
  4. Utilizando la función format().
  5. Utilizando f-string (interpolación literal de cadenas).

Concatenación de cadenas utilizando el operador +.

Esta es la forma más sencilla de concatenación de cadenas. Veamos un ejemplo sencillo.

s1 = 'SW'
s2 = 'Hosting'

s3 = s1 + s2

print(s3)

Salida:

SWHosting

cta:cloud_app_swpanel_smart_d5

Es muy sencillo utilizar el operador + para la concatenación de cadenas. No obstante, los argumentos deben ser de tipo cadena. Por ejemplo, si intentamos concatenar "Hola"+4, nos dará el siguiente error:

>>>'Hola' + 4
 Traceback (most recent call last):
  File "<input>", line 1, in 
TypeError: can only concatenate str (not "int") to str

Para solventarlo, podemos utilizar la función str() para obtener la representación en forma de string de un objeto. Veamos cómo concatenar una cadena con un Int u otro objeto.

print('Hola' + str(7))

class Data:
    def __init__(self, i):
        self.id = i

    def __str__(self):
        return f'Data[{self.id}]'

print('Hola ' + str(Data(15)))

Salida:

Hola7
Hola Data[15]

En el primer caso, el script imprimirá "Hola7" al concatenar la cadena "Hola" con el resultado de convertir el número 7 a una cadena.

En el segundo caso, al imprimir el resultado de str(Data(15)), se está convirtiendo el objeto Data con un identificador de 15 a una representación de cadena. En Python, al definir el método __str__ dentro de una clase, se puede personalizar la representación de cadena de un objeto. En este caso, al llamar str(Data(15)), se invoca el método __str__ de la clase Data, que devuelve la cadena 'Data[15]'.

El principal problema con el operador + es que no podemos agregar ningún separador o delimitador entre cadenas. Por ejemplo, si tenemos que concatenar "Hola" y "Mundo" con un separador de espacio en blanco, tendremos que escribirlo como "Hola" + " " + "Mundo".

cta:hosting

Concatenación de cadenas usando la función join()

La función join() es útil para unir cadenas con un separador. Resulta especialmente práctica cuando tenemos una secuencia de cadenas, como una lista o una tupla de cadenas. Si no deseamos utilizar un separador, simplemente podemos utilizar la función join() con una cadena vacía.

Ejemplo 1: Concatenación de cadenas usando join()
s1 = 'Hola'
s2 = 'Mundo'

print('Cadena concatenada usando join() =', "".join([s1, s2]))
Ejemplo 2: Concatenación de cadenas usando join() y espacios
s1 = 'Hola'
s2 = 'Mundo'

print('Cadena concatenada usando join() y espacios =', " ".join([s1, s2]))

El resultado sería:

Cadena concatenada usando join() = HolaMundo
Cadena concatenada usando join() y espacios = Hola Mundo

Concatenación de cadenas usando el operador %

El operador % se puede emplear tanto para formatear cadenas como para concatenarlas. Resulta práctico cuando deseamos unir cadenas y realizar un formateo sencillo.

Ejemplo 1: Concatenación de cadenas usando el operador %
s1 = 'Hola'
s2 = 'Mundo'

s3 = "%s %s" % (s1, s2)
print('Concatenación de cadenas usando el operador % =', s3)
Ejemplo 2: Concatenación de cadenas usando el operador % con formateo
s1 = 'Hola'
s2 = 'Mundo'

s3 = "%s %s desde SWHosting - %d" % (s1, s2, 2024)
print('Concatenación de cadenas usando el operador % con formateo =', s3)

El resultado sería:

Concatenación de cadenas usando el operador % = Hola Mundo
Concatenación de cadenas usando el operador % con formateo = Hola Mundo desde SWHosting - 2024

Concatenación de Cadenas usando la función format()

La función format() es una herramienta poderosa que ofrece flexibilidad tanto en la concatenación como en el formateo de cadenas. Aunque es importante recordar que su uso va más allá de la simple concatenación de cadenas.

Ejemplo:
s1 = 'Hola'
s2 = 'Mundo'

s3 = "{}-{}".format(s1, s2)
print('Concatenación de cadenas usando format() =', s3)

s3 = "{in1} {in2}".format(in1=s1, in2=s2)
print('Concatenación de cadenas usando format() =', s3)

Salida:

Concatenación de cadenas usando format() = Hola-Mundo
Concatenación de cadenas usando format() = Hola Mundo

Concatenación de Cadenas usando f-string

Si estás utilizando Python 3.6 o una versión posterior, también puedes utilizar f-string para concatenar cadenas. Esta es una forma moderna de formatear cadenas.

s1 = 'Hola'
s2 = 'Mundo'

s3 = f'{s1} {s2}'
print('Concatenación de cadenas usando f-string =', s3)

producto = 'iPhone'
precio = 999.99
cantidad = 2

print(f'El producto {producto} tiene un precio de {precio} y la cantidad disponible es {cantidad}')

Salida:

Concatenación de cadenas usando f-string = Hola Mundo
El producto iPhone tiene un precio de 999.99 y la cantidad disponible es 2

La función f-string de Python resulta más clara y sencilla de escribir en comparación con la función format(). Además, automáticamente convierte el argumento objeto en una cadena al ser utilizado como reemplazo de campo.

Conclusión

Hay múltiples maneras de formatear cadenas en Python. Es crucial elegir la más adecuada según tus requerimientos. Por ejemplo, si necesitas combinar varias cadenas con un separador, puedes emplear la función join(). Por otro lado, si deseas aplicar un formato específico a la concatenación, es recomendable utilizar la función format() o las f-strings. Es esencial recordar que las f-strings solo son compatibles con Python 3.6 o versiones posteriores.

cta:cloud_so

i