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:
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
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.
s1 = 'Hola'
s2 = 'Món'
print('Cadena concatenada fent servir join() =', "".join([s1, s2]))
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
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.
s1 = 'Hola'
s2 = 'Món'
s3 = "%s %s" % (s1, s2)
print('Concatenació de cadenes usant l'operador % =', s3)
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
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.
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
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.
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