Blog / Concatenació de strings a Python

Concatenació de strings a Python

per SW Team

Concatenació de strings a Python

La concatenació de strings és una operació molt freqüent en programació. A Python, hi ha diverses maneres de realitzar la unió de strings. El propòsit d'aquest bloc és explorar diferents mètodes per concatenar cadenes a un programa Python.

Podem dur a terme la unió de cadenes de les maneres següents:

  1. Utilitzant loperador +.
  2. Emprant el mètode join().
  3. Usant l'operador %.
  4. Utilitzant la funció format().
  5. Utilitzant f-string (interpolació literal de cadenes).

Concatenació de cadenes utilitzant l'operador +.

Aquesta és la manera més senzilla de concatenació de cadenes. Vegem-ne un exemple senzill.

s1 = 'SW'
s2 = 'Hosting'

s3 = s1 + s2

print(s3)

Sortida:

SWHosting

cta:cloud_app_swpanel_smart_d5

És molt senzill utilitzar loperador + per a la concatenació de cadenes. Tot i això, els arguments han de ser de tipus cadena. Per exemple, si intentem concatenar "Hola"+4, ens donarà el següent error:

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

Per solucionar-ho, podem fer servir la funció str() per obtenir la representació en forma de string d'un objecte. Vegem com concatenar una cadena amb un Int o un altre objecte.

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)))

Sortida:

Hola7
Hola Data[15]

En el primer cas, l'script imprimirà "Hola7" en concatenar la cadena "Hola" amb el resultat de convertir el número 7 a una cadena.

En el segon cas, en imprimir el resultat de str(Data(15)), s'està convertint l'objecte Data amb un identificador de 15 a una representació de cadena. A Python, al definir el mètode __str__ dins d'una classe, es pot personalitzar la representació de cadena d'un objecte. En aquest cas, en anomenar str(Data(15)), s'invoca el mètode __str__ de la classe Data, que torna la cadena 'Data[15]'.

El problema principal amb l'operador + és que no podem afegir cap separador o delimitador entre cadenes. Per exemple, si hem de concatenar "Hola" i "Món" amb un separador d'espai en blanc, haurem d'escriure'l com a "Hola" + " " + "Món".

cta:hosting

Concatenació de cadenes usant la funció join()

La funció join() és útil per unir cadenes amb un separador. Resulta especialment pràctica quan tenim una seqüència de cadenes, com ara una llista o una tupla de cadenes. Si no volem fer servir un separador, simplement podem utilitzar la funció join() amb una cadena buida.

Exemple 1: Concatenació de cadenes usant join()
s1 = 'Hola'
s2 = 'Món'

print('Cadena concatenada fent servir join() =', "".join([s1, s2]))
Exemple 2: Concatenació de cadenes usant join() i espais
s1 = 'Hola'
s2 = 'Món'

print('Cadena concatenada usant join() i espais =', " ".join([s1, s2]))

El resultat seria:

Cadena concatenada usant join() = HolaMón
Cadena concatenada usant join() i espais = Hola Món

Concatenació de cadenes fent servir l'operador %

L'operador % es pot utilitzar tant per formatar cadenes com per concatenar-les. Resulta pràctic quan desitgem unir cadenes i fer un format senzill.

Exemple 1: Concatenació de cadenes usant l'operador %
s1 = 'Hola'
s2 = 'Món'

s3 = "%s %s" % (s1, s2)
print('Concatenació de cadenes usant l'operador % =', s3)
Exemple 2: Concatenació de cadenes usant l'operador % amb format
s1 = 'Hola'
s2 = 'Món'

s3 = "%s %s des de SWHosting - %d" % (s1, s2, 2024)
print('Concatenació de cadenes usant l'operador % amb format =', s3)

El resultat seria:

Concatenació de cadenes usant l'operador % = Hola Món
Concatenació de cadenes usant l'operador % amb format = Hola Món des de SWHosting - 2024

Concatenació de Cadenes usant la funció format()

La funció format() és una eina poderosa que ofereix flexibilitat tant en la concatenació com en el format de cadenes. Tot i que és important recordar que el seu ús va més enllà de la simple concatenació de cadenes.

Exemple:
s1 = 'Hola'
s2 = 'Món'

s3 = "{}-{}".format(s1, s2)
print('Concatenació de cadenes fent servir format() =', s3)

s3 = "{in1} {in2}".format(in1=s1, in2=s2)
print('Concatenació de cadenes fent servir format() =', s3)

Sortida:

Concatenació de cadenes usant format() = Hola-Món
Concatenació de cadenes usant format() = Hola Món

Concatenació de Cadenes usant f-string

Si utilitzeu Python 3.6 o una versió posterior, també pots utilitzar f-string per concatenar cadenes. Aquesta és una forma moderna de formatar cadenes.

s1 = 'Hola'
s2 = 'Món'

s3 = f'{s1} {s2}'
print('Concatenació de cadenes usant f-string =', s3)

producte = 'iPhone'
preu = 999.99
quantitat = 2

print(f'El producte {producte} té un preu de {preu} i la quantitat disponible és {quantitat}')

Sortida:

Concatenació de cadenes usant f-string = Hola Món
El producte iPhone té un preu de 999.99 i la quantitat disponible és 2

La funció f-string de Python és més clara i senzilla d'escriure en comparació de la funció format(). A més, automàticament converteix l'argument objecte en una cadena en ser utilitzat com a reemplaçament de camp.

Conclusió

Hi ha múltiples maneres de formatar cadenes a Python. És crucial triar la més adequada segons els requeriments. Per exemple, si necessites combinar diverses cadenes amb un separador, pots utilitzar la funció join(). D'altra banda, si vols aplicar un format específic a la concatenació, és recomanable utilitzar la funció format() o les f-strings. És essencial recordar que les f-strings només són compatibles amb Python 3.6 o versions posteriors.

cta:cloud_so

i