Cadenas

Se pueden crear cadenas por asignación directa


cadena = "Mi cadena"

o bien por invocacion del tipo

cadena = str('Mi cadena')

Las cadenas se pueden concatenar mediante el operador +


In [34]: cadena1 = "Mi cadena"
In [35]: cadena2 = "Otra cadena"
In [36]: cadena3 = cadena2 + cadena1
In [37]: cadena3
Out[37]: 'Otra cadenaMi cadena'

Las cadenas son objetos y tienen métodos:


In [38]: cadena.
cadena.capitalize  cadena.isalnum     cadena.lstrip      cadena.splitlines
cadena.center      cadena.isalpha     cadena.partition   cadena.startswith
cadena.count       cadena.isdigit     cadena.replace     cadena.strip
cadena.decode      cadena.islower     cadena.rfind       cadena.swapcase
cadena.encode      cadena.isspace     cadena.rindex      cadena.title
cadena.endswith    cadena.istitle     cadena.rjust       cadena.translate
cadena.expandtabs  cadena.isupper     cadena.rpartition  cadena.upper
cadena.find        cadena.join        cadena.rsplit      cadena.zfill
cadena.format      cadena.ljust       cadena.rstrip      
cadena.index       cadena.lower       cadena.split 

Tambien puede usarse la tripe comilla para definir una cadena. En ese caso se respeta el bloque completo comprendido esntre las tres comillas de apertura y las tres de cierre. (similar a un HEREDOC en PHP)


In [38]: cadena = """
   ....: En un lugar de la mancha ....
   ....:        de cuyo nombre n quiero acordarme ...
   ....: vivia un hidago ...
   ....: """
In [39]: cadena
Out[39]: '\nEn un lugar de la mancha ....\n\tde cuyo nombre n quiero acordarme ...\nvivia un hidago ...\n'

Concatenar cadenas

Es sencillo concatenar cadenas con el operador “+”


cadena = "Hola "+"Que tal"
print cadena
> Hola que tal

Pero la cosa no funciona muy bien si queremos concadenar un entero

a = 1
cadena = "El valor de a es "
print cadena + a
> TypeError: cannot concatenate 'str' and 'int' objects

En ese caso hay que hacer un casting para que el entero sea una cadena

print cadena + str(a)
> El valor de a es 1

Aun asi, esta manera de concatenar es bastante fea. Como una cadena es tambien un objeto, podemos aprovechar la funcionalidad que nos ofrece un objeto string. Lo conveniente es usar la funcion format


a = 1
cadena = "El valor de a es {0}"
cadena.format(a)
> El valor de a es 1

o bien, odemos acceder al método del objeto directamente asi:


a = 1
print "El valor de a es {0}".format(a)
El valor de a es 1

El método format permite pasar n parámetros a la funcion y posicionarlos indicando el número del argumento entre llaves. Asi {0} es el primer argumento que le pasamos a format, {1} el segundo y asi …


"En un {0} de la {1} de cuyo {2} ...".format('lugar','mancha','nombre')
> En un lugar de la mancha de cuyo nombre ..."

format va mucho mas allá e incluso dispone de un “minilenguaje” para formatear cadenas ( ver http://docs.python.org/2/library/string.html#formatstrings)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *