En esta lección y en la lección Cadenas de texto (2) se tratan el tipo de datos cadena de texto (string) en Python.
En esta lección se tratan los conceptos más básicos de las cadenas, para los que no es necesario conocer el concepto de variable.
Una cadena es una secuencia inmutable de caracteres Unicode, delimitada por comillas.
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.
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')
File , line
print( Esto es una cadena')
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 2025 Bartolomé Sintes Marco")
print("Licencia CC-BY-SA 4.0")
return
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")
File , line
print("Las comillas dobles " delimitan cadenas )
>>> print('Las comillas simples ' delimitan cadenas')
File , line
print('Las comillas simples ' delimitan cadenas )
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 el entorno interactivo colorea la orden así nos lo indica.
Dependiendo del número y la posición de las comillas, el mensaje de error puede ser distinto:
>>> print('Un tipo le dice a otro: '¿Cómo estás?'')
File , line
print('Un tipo le dice a otro: ' Cómo estás?'')
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.
Los caracteres especiales empiezan por una contrabarra (\).
>>> print("Las comillas dobles \" delimitan cadenas.")
Las comillas dobles " delimitan cadenas.
>>> print('Las comillas simples \' delimitan cadenas.')
Las comillas simples ' delimitan cadenas.
>>> print("Una línea\nOtra línea")
Una línea
Otra línea
>>> print("1\t2\t3")
1 2 3
Por completar con todos los caracteres especiales
En un programa, se puede escribir una cadena en un línea, pero no se produciría ninguna salida. Para generar algún tipo de salida, debe utilizarse la función print().
En el entorno interactivo también se pueden escribir cadenas sueltas, pero al pulsar Intro, se evalúa la cadena y se escribe el resultado, como ocurre cuando se escribe una expresión aritmética.
En la mayoría de los casos el entorno interactivo 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, el entorno interactivo lo escribe entre comillas dobles.
>>> "Las comillas simples ' delimitan cadenas."
"Las comillas simples ' delimitan cadenas."
>>> 'Las comillas simples \' delimitan cadenas.'
"Las comillas simples ' delimitan cadenas."
Pero si aparecen ambas comillas, el entorno interactivo 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.'
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")
Esta línea está cortada en dos líneas de menos de 79 caracteres partiendo la cadena en dos
También se puede escribir el carácter contrabarra (\) para partir una cadena en varias líneas.
>>> print("Esta línea está cortada en dos líneas de menos de 79 caracteres \
... partiendo la cadena en dos")
Esta línea está cortada en dos líneas de menos de 79 caracteres partiendo la cadena en dos
En los programas en los que hay bloques, la segunda notación hace algo más difícil la lectura del programa.
for i in range(3):
print("a b c "
"d e f ")
a b c d e f a b c d e f a b c d e f
for i in range(3):
print("a b c \
d e f ")
a b c d e f a b c d e f a b c d e f