Las cadenas de texto, o strings, las delimitamos en Python encerrándolas entre comillas. Por lo general, estas pueden ser simples o dobles, da igual cuáles empleemos (con la condición de que la comilla que abre sea del mismo tipo que la que cierra, por supuesto). En los ejemplos que he incluido en esta serie me habréis visto usar un tipo u otro indistintamente.
La ventaja de poder elegir entre comillas simples o dobles la encontramos cuando necesitemos anidar unas comillas dentro de otras. Observad el siguiente ejemplo:
>>> >>> print('Una de mis series favoritas era "La casa de la pradera".')
Una de mis series favoritas era "La casa de la pradera".
Esto lo hemos podido conseguir utilizando el par interior de comillas de tipo diferente a la que abre y cierra el string, de modo que Python no puede confundirse a la hora de delimitar el fin de la cadena.
Pero, ¿como haríamos si necesitáramos imprimir las propias comillas simples o dobles, con libertad, dentro de un string?
La solución pasa por utilizar «caracteres de escape». Referenciamos las comillas simples y dobles precediéndolas de un backslash (\), de modo que Python ignore su significado habitual delimitando strings.
Para escribir una comilla simple, emplearíamos \’ y, para una doble, \».
Por ejemplo:
>>> print('Una de mis canciones favoritas de Beatles es "Maxwell\'s silver hammer".')
Una de mis canciones favoritas de Beatles es "Maxwell's silver hammer".
Existe un problema al escribir strings largos, y es que deben estar en la misma línea de código, pues Python interpretaría una pulsación de Enter como una nueva línea de código.
Si, por cuestiones de comodidad, necesitamos «partir» nuestro código, continuando en una nueva línea física, pero que forme parte de la misma línea lógica, podemos hacerlo terminando la línea física con el carácter de escape \ y pulsando Enter a continuación.
Observadlo en este ejemplo:
>>> print('Una de mis canciones favoritas de Beatles \
es "Maxwell\'s silver hammer".')
Una de mis canciones favoritas de Beatles es "Maxwell's silver hammer".
¿Cómo manejaríamos un string que estuviera compuesto por varias líneas? La solución obvia sería emplear un string por línea, pero ¿cómo lo hacemos para que figure todo en la misma cadena?
Existe un carácter de escape para una nueva línea, y es \n. Fijaos en el siguiente código:
>>> print('La receta auténtica del alioli:\n- Ajo\n- Aceite')
La receta auténtica del alioli:
- Ajo
- Aceite
También disponemos de un carácter de escape para el tabulador: \t.
>>> print('Manzana\tPera\tCiruela\nMelón\tSandía\tFresa')
Manzana Pera Ciruela
Melón Sandía Fresa
No obstante, cuando la cadena es larga, este método de formateo resulta complejo. Ahí es donde surge un nuevo invitado a la escena: la comilla triple.
La comilla triple nos permite insertar un string con todas las líneas que deseemos. Basta que enmarquemos un bloque de texto entre comillas triples (da igual si son simples o dobles) y Python respetará el aspecto y formato completo del texto.
Veámoslo en el siguiente ejemplo:
>>> print("""
Una de mis series favoritas era "La casa de la pradera"
Una de mis canciones favoritas de Beatles es "Maxwell's silver hammer"
Manzana Pera Ciruela
Melón Sandía Fresa""")
Una de mis series favoritas era "La casa de la pradera"
Una de mis canciones favoritas de Beatles es "Maxwell's silver hammer"
Manzana Pera Ciruela
Melón Sandía Fresa
Todo eso en un único string.
Observad cómo no he necesitado preocuparme del anidado de comillas, ni tan siquiera de escapar la comilla de Maxwell’s.
Interesante, ¿verdad?
Python está repleto de sutilezas así que hacen que la labor de programar sea un ejercicio eficaz y sumamente divertido a la vez.
Javier Montero
El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)
El Club del Autodidacta