Cadenas de texto

En esta lección se tratan el tipo de datos cadena de texto (string) en Python.

Cadenas de texto

Una cadena es una secuencia inmutable de caracteres Unicode, delimitada por comillas.

Comillas simples y dobles

Las cadenas de texto se pueden delimitar con comillas simples (') o con comillas dobles ("):

>>> print('Esto es una cadena')
Esto es una cadena
>>> print("Esto es una cadena")
Esto es una cadena

La función print(), que se comenta con más detalle en la lección Salida por pantalla, muestra por pantalla el contenido de la cadena, pero no las comillas delimitadoras de las cadenas.


En Python las comillas dobles y las comillas simples son completamente equivalentes, pero en otros lenguajes de programación no lo son.

¡Atención!En otros lenguajes de programación, por ejemplo en PHP, en las cadenas delimitadas con comillas dobles las variables se sustituyen por su valor y se pueden utilizar caracteres especiales, pero en las cadenas delimitadas con comillas simples, no. Aunque en la documentación de Python se utilizan casi siempre comillas simples, en estos apuntes se utilizan casi siempre las comillas dobles porque en PHP (el lenguaje de programación que se trabaja en 2º curso) se utilizan más las comillas dobles.


Las cadenas se deben cerrar con las mismas comillas con las que se abrieron, de lo contrario estaremos cometiendo un error de sintaxis:

>>> print("Esto es una cadena')                      
SyntaxError: EOL while scanning string literal
>>>

En un programa, al intentar ejecutar el programa se abriría una ventana de error:

print("Esto es una cadena')
Aviso: Error de delimitador de cadena

Sin necesidad de ejecutar la orden o el programa, la forma en que IDLE colorea la orden nos ayuda a identificar que hay algo incorrecto en el programa. En el ejemplo anterior, el paréntesis de cierre se muestra de color verde, lo que indica que IDLE no identifica la comilla simple como cierre de la cadena abierta con comilla doble.

Comillas triples

Las comillas triples permiten que las cadenas ocupen más de una línea:

>>> print("""Esto es una cadena
que ocupa
  varias líneas""")
Esto es una cadena
que ocupa
  varias líneas

Pero las comillas triples se utilizan sobre todo con una finalidad específica: la documentación de módulos, funciones, clases o métodos. Son las llamadas docstrings, definidas en el PEP 257. Son cadenas que se escriben al principio del elemento describiendo lo que hace el elemento. No producen ningún resultado en el programa, pero las herramientas de documentación de Python pueden extraerlas para generar documentación automáticamente.

def licencia():
    """Escribe la licencia de estos apuntes"""
    print("Copyright 2013 Bartolomé Sintes Marco")
    print("Licencia CC-BY-SA 4.0")
    return

Comillas dentro de comillas

Se pueden escribir comillas simples en cadenas delimitadas con comillas dobles y viceversa:

>>> print("Las comillas simples ' delimitan cadenas.")
Las comillas simples ' delimitan cadenas.
>>> print('Las comillas dobles " delimitan cadenas.')
Las comillas dobles " delimitan cadenas.

Pero no se pueden escribir en el interior de una cadena comillas del mismo tipo que las comillas delimitadoras:

>>> print("Las comillas dobles " delimitan cadenas")
SyntaxError: invalid syntax
>>>
>>> print('Las comillas simples ' delimitan cadenas')
SyntaxError: invalid syntax
>>>

El motivo es que Python entiende que la comilla escrita en medio de la cadena está cerrando la cadena y no puede interpretar lo que viene a continuación. Sin necesidad de ejecutar la orden o el programa, la forma en que IDLE colorea la orden así nos lo indica.

En un programa, obtendríamos también una ventana de error de sintaxis. Dependiendo del número y la posición de las cadenas, el mensaje de error puede ser distinto:

print("Las comillas dobles " delimitan cadenas")
Aviso: Error de sintaxis
print('Un tipo le dice a otro: '¿Cómo estás?'')
Aviso: Error de sintaxis (cadena incorrecta)

Otra forma de escribir comillas en una cadena es utilizar los caracteres especiales \" y \' que representan los caracteres comillas dobles y simples respectivamente y que Python no interpreta en ningún caso como delimitadores de cadena:

>>> print('Las comillas simples \' delimitan cadenas.')
Las comillas simples ' delimitan cadenas.
>>> print("Las comillas dobles \" delimitan cadenas.")
Las comillas dobles " delimitan cadenas.

Se pueden utilizar ambos caracteres especiales independientemente del delimitador utilizado

>>> print('Las comillas simples \' y las comillas dobles \" delimitan cadenas.')
Las comillas simples ' y las comillas dobles " delimitan cadenas.
>>> print("Las comillas simples \' y las comillas dobles \" delimitan cadenas.")
Las comillas simples ' y las comillas dobles " delimitan cadenas.

Caracteres especiales

Los caracteres especiales empiezan por una contrabarra (\).

En construcciónPor completar con todos los caracteres especiales

Evaluación de cadenas en el prompt de IDLE

En el prompt de IDLE se pueden escribir cadenas sueltas, sin necesidad de escribir la función print(). Al pulsar Intro, IDLE evalúa la cadena y escribe el resultado, como hace cuando se escribe una expresión aritmética.

En la mayoría de los casos IDLE escribe el resultado entre comillas simples, para indicar que se trata de una cadena.

>>> "Esto es una cadena"
'Esto es una cadena'
>>> 'Esto es una cadena'
'Esto es una cadena'

Si el resultado contiene únicamente comillas simples, IDLE lo escribe entre comillas dobles.

>>> "Las comillas simples ' delimitan cadenas."
"Las comillas simples ' delimitan cadenas."
>>> 'Las comillas simples \' delimitan cadenas.'
"Las comillas dobles ' delimitan cadenas."

Pero si aparecen ambas comillas, IDLE lo escribe entre comillas simples y las comillas simples se muestran como caracteres especiales.

>>> 'Las comillas simples \' y dobles \" delimitan cadenas.'
'Las comillas simples \' y dobles " delimitan cadenas.'
>>> "Las comillas simples \' y dobles \" delimitan cadenas."
'Las comillas simples \' y dobles " delimitan cadenas.'

Cadenas largas

De acuerdo con la guía de estilo oficial de Python, las líneas de código no deben contener más de 79 caracteres, para facilitar la legibilidad.

Si un programa contiene cadenas muy largas, las cadenas se pueden simplemente partir en varias cadenas.

print("Esta línea está cortada en dos líneas de menos de 79 caracteres "
      "partiendo la cadena en dos")

Operaciones con cadenas

En construcciónPor completar


En construcciónPor completar

Para saber más