En la Pyldora anterior te hablé sobre variables y tipos de datos, pero no toqué, con toda la intención el tipo de dato texto. Básicamente dejé a un lado el Texto en Python. Y es que sin lugar a dudas, el texto en Python, como en cualquier otro lenguaje de programación tiene entidad propia. Y digo que tiene entidad propia por la importancia y por las posibilidades. Y por supuesto, porque tiene mas complejidad que el resto de tipos de datos.
El tipo de datos de texto, te permite hacer casi cualquier cosa, y por esta razón, se merece una Pyldora para el solo. No es que el resto de tipos de datos no lo merezcan, pero ciertamente, la complejidad y posibilidades que ofrece el texto, es digna de consideración.
Trabajar con texto en Python
Definición de texto
Existen distintas formas de definir una cadena de texto. Por ejemplo,
variable1 = "Cadena de texto"
variable1 = 'Cadena de texto'
variable1 = """Cadena de texto"""
O incluso,
variable1 = ("cadena"
"de"
"texto")
Otra posibilidad muy interesante para reemplazar una variable dentro al definir un texto es utilizando f
. Por ejemplo,
var1 = "Mundo"
var2 = f"Hola {var1}"
Convertir otros tipos de dato
En el caso de las cadenas de texto, tienes str
para convertir de otros tipos de datos a cadena de texto. Por ejemplo,
cadena = str(12.45)
Al contrario de lo que sucede con otras tipos de datos, en el caso de la conversión implícita no es tan clara.
Modificar y extraer partes de un texto
Aunque todavía no hemos llegado a la Pyldora de las listas, adelantarte que un texto es al fin y al cabo una lista de caracteres, con lo que puedes aplicar algunas de las características y propiedades que en el caso de las listas. Cuando llegues a la Pyldora de listas, puedes hacer un repaso a las variables tipo texto. Pero por ir abriendo boca,
>>> var1 = "Hola mundo"
>>> print(var1[0:5])
Hola
Secuencias de escape
Puedes definir una cadena vacía utilizando variable1 = ""
, y también puedes utilizar secuencias de escape. Algunas secuencias de escape que seguro te resultarán interesantes son,
\n
representa un salto de línea\t
un tabulador\'
una comilla simple\\
una barra invertida
Si quieres escribir texto en bruto, es decir, sin secuencias de escape, o mejor dicho, que las secuencias de escape, aparezcan de forma literal, tienes que preceder la definición con r
como en el siguiente ejemplo,
texto_en_bruto = r"a\nb\nc\nd"
Respecto a las operaciones con cadenas de texto,
+
sumar.*
multiplicarin
pertenencia
Por ejemplo,
>>> print("Hola" + " " + "mundo")
Hola mundo
>>> print("Hola"*2)
HolaHola
>>> print("Hola" in "Hola mundo")
True
Métodos
Pero además de lo que has visto hasta el momento, las cadenas de texto, tienen una gran cantidad de métodos, para trabajar con ellas. Como por ejemplo, split
, partition
, strip
, startswith
, endswith
, find
, index
, count
, replace
, capitalize
, title
, upper
, lower
, swapcase
, isalnum
, isnumeric
, isaplpha
. Para que veas algunos ejemplos del uso y funcionamiento de estos métodos,
>>> "Hola mundo".split(" ")
['Hola', 'mundo']
>>> "hola mundo".capitalize()
'Hola mundo'
>>> "hola mundo".title()
'Hola Mundo'
>>> "hola mundo".upper()
'HOLA MUNDO'
>>> "HOLA MUNDO".lower()
'hola mundo'
>>> "Hola mundo".isnumeric()
False
Unicode
Antes te he dicho que he las cadenas de texto se podían asemejar a listas de caracteres. Pero tienes que tener en cuenta que se trata de caracteres unicode. Es decir, no solo son letras y números, también puedes encontrar emojis. Esto en tu día a día no tiene mayor implicación, pero es algo que tienes que tener presente.
El vídeo
En este vídeo te muestro todo lo que has podido leer en este Pyldora Pythonica sobre el tratamiento de texto en Python.
Conclusiones
Como ves, no es que el tipo de datos texto sea complejo en Python. Ni mucho menos. Simplemente que tiene muchas opciones y posibilidades. Al final, tanto la entrada, como la salida de tu aplicación, seguro que en algún momento tiene que tratar texto. De ahí mi interés en darle la importancia que requiere al tipo de datos texto.