Concatenación de cadenas en Python

La concatenación de cadenas es una operación muy común en programación. La concatenación de cadenas en Python se puede realizar de diversas maneras. Este tutorial tiene como objetivo explorar diferentes formas de concatenar cadenas en un programa en Python.

Concatenación de Cadenas en Python

Podemos realizar la concatenación de cadenas de las siguientes maneras:

  • Utilizando el operador +
  • Utilizando el método join()
  • Utilizando el operador %
  • Utilizando la función format()
  • Utilizando f-string (Interpolación Literal de Cadenas)

Concatenación de Cadenas usando el Operador +

Esta es la forma más simple de concatenar cadenas. Veamos un ejemplo sencillo.

s1 = 'Apple'
s2 = 'Pie'
s3 = 'Sauce'

s4 = s1 + s2 + s3

print(s4)

Salida: ApplePieSauce Veamos otro ejemplo en el que obtendremos dos cadenas a partir de la entrada del usuario y las concatenaremos.

s1 = input('Please enter the first string:\n')
s2 = input('Please enter the second string:\n')

print('Concatenated String =', s1 + s2)

Salida:

Please enter the first string:
Hello
Please enter the second string:
World
Concatenated String = HelloWorld

Es muy fácil usar el operador + para la concatenación de cadenas. Sin embargo, los argumentos deben ser cadenas.

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

Podemos usar la función str() para obtener la representación de cadena de un objeto. Veamos cómo concatenar una cadena con un entero u otro objeto.

print('Hello' + str(4))


class Data:
    id = 0

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

    def __str__(self):
        return 'Data[' + str(self.id) + ']'


print('Hello ' + str(Data(10)))

Salida:

Hello4
Hello Data[10]

El mayor 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".

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

Podemos usar la función join() para concatenar cadenas con un separador. Es útil cuando tenemos una secuencia de cadenas, por ejemplo una lista o una tupla de cadenas. Si no desea un separador, entonces use la función join() con una cadena vacía.

s1 = 'Hello'
s2 = 'World'

print('Concatenated String using join() =', "".join([s1, s2]))

print('Concatenated String using join() and whitespaces =', " ".join([s1, s2]))

Salida:

Concatenated String using join() = HelloWorld
Concatenated String using join() and spaces = Hello World

Concatenación de cadenas usando el operador %

Podemos usar el operador % para formateo de cadenas; también puede usarse para la concatenación de cadenas. Es útil cuando queremos unir cadenas y realizar un formato simple.

s1 = 'Hello'
s2 = 'World'

s3 = "%s %s" % (s1, s2)
print('String Concatenation using % Operator =', s3)

s3 = "%s %s from JournalDev - %d" % (s1, s2, 2018)
print('String Concatenation using % Operator with Formatting =', s3)

Salida:

String Concatenation using % Operator = Hello World
String Concatenation using % Operator with Formatting = Hello World from JournalDev - 2018

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

Podemos utilizar la función format() de cadenas para la concatenación y el formateo de cadenas.

s1 = 'Hello'
s2 = 'World'

s3 = "{}-{}".format(s1, s2)
print('String Concatenation using format() =', s3)

s3 = "{in1} {in2}".format(in1=s1, in2=s2)
print('String Concatenation using format() =', s3)

Salida:

String Concatenation using format() = Hello-World
String Concatenation using format() = Hello World

La función format() de cadenas en Python es muy potente; usarla solo para la concatenación de cadenas no es su uso adecuado.

Concatenación de cadenas usando f-string

Si estás utilizando Python 3.6 o superior, puedes usar f-string para la concatenación de cadenas. Es una nueva forma de formatear cadenas introducida en PEP 498 – Interpolación Literal de Cadenas.

s1 = 'Hello'
s2 = 'World'

s3 = f'{s1} {s2}'
print('String Concatenation using f-string =', s3)

name = 'Pankaj'
age = 34
d = Data(10)

print(f'{name} age is {age} and d={d}')

Salida:

String Concatenation using f-string = Hello World
Pankaj age is 34 and d=Data[10]

Las f-strings de Python son más limpias y fáciles de escribir en comparación con la función format(). También llama a la función str() cuando se utiliza un argumento de objeto como reemplazo de campo.

Conclusión

La formateación de cadenas en Python se puede realizar de varias maneras. Utilícelas según sus requisitos. Si tiene que concatenar una secuencia de cadenas con un delimitador, utilice la función join(). Si también se requiere algún formato con la concatenación, entonces use la función format() o f-string. Tenga en cuenta que f-string se puede utilizar con Python 3.6 o versiones superiores.

Puede consultar el script completo de Python y más ejemplos en nuestro Repositorio de GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-string-concatenation