Tutorial de Python - Tipo de datos - Cadena

  1. Crear Cadenas en Python
  2. Elementos de acceso de los strings
  3. Operaciones de la cadena en Python
  4. Funciones incorporadas aplicables a las cadenas
  5. Formato de cadenas en Python
  6. El método format() de la cadena

En esta sección cubriremos el tipo de datos de Python String.

Una cadena es una secuencia de caracteres, representada por datos binarios en el ordenador. Y en Python, una cadena es una colección de caracteres unicode.

Información

Las cuerdas de Python son inmutables.

Crear Cadenas en Python

Se puede crear un string utilizando comillas simples o dobles. También se puede crear un string de varias líneas utilizando comillas triples.

x = "String of characters"
x = """Multiline
string"""

Elementos de acceso de los strings

El operador de corte [] se utiliza para acceder a los caracteres de las cadenas. El índice comienza desde 0 como otros tipos de datos de Python.

>>> x = 'Python Programming'
>>> print('x[0] =', x[0])
'P'
>>> print('x[4:15] =', x[4:15])
'on Programm'
>>> x[4] = 'l'
TypeError: 'str' object does not support item assignment
Advertencia

El índice debe ser un número entero, de lo contrario, se producirá un TypeError.

Indexación negativa

Se permite el uso de índices negativos para acceder a los caracteres de la cadena. Por ejemplo, el índice -1 se refiere al último carácter. De manera similar, el índice -2 se refiere al penúltimo carácter.

>>> s = "Python"
>>> print(s[-1])
'n'
>>> print(s[-2])
'o'
>>> print(s[-3])
'h'

Borrar caracteres de una cadena

Por lo tanto, como los strings son inmutables, los caracteres de un string no pueden ser borrados. Pero puede asignar un nuevo string al mismo nombre. Esto se demuestra en el siguiente código:

>>> s = 'Python'
>>> s = 'Program'
>>> s
'Program'

La cadena entera puede ser borrada usando la palabra clave del:

>>> del s

Operaciones de la cadena en Python

Hay una serie de operaciones que se pueden realizar en los strings; algunas de ellas son las siguientes:

Concatenar dos o más cuerdas

Dos o más cadenas pueden ser concatenadas usando el operador +.

>>> s1 = 'Python '
>>> s2 = 'Programming'
>>> print(s1 + s2)
'Python Programming'

Si escribe dos cadenas juntas, se concatenarán las cadenas como lo hace el operador +:

>>> print('Python ' 'Programming')
'Python Programming'

Los paréntesis también pueden usarse para concatenar dos cadenas cuando las cadenas están en múltiples líneas.

>>> s = ('Python '
     'Programming')
>>> s
'Pyhton Programming'

Iterar a través de las cadenas

Puede iterar a través de una lista usando el bucle for:

s = 'Python'
for i in s:
    print(i)
P
y
t
h
o
n

Comprobación de la membresía de la cadena

La palabra clave in se utiliza para comprobar la existencia de una subcadena en una cadena.

>>> s = 'Python'
>>> print('a' in s)
False
>>> print('o' in s)
True

Funciones incorporadas aplicables a las cadenas

Las funciones que se aplican a otros tipos de secuencias también pueden ser aplicables a los strings. Las funciones comúnmente usadas son len() para encontrar el número de caracteres en una cadena, y enumerate() que devuelve un objeto que contiene el índice y el valor de los elementos de la cadena como un par.

Formato de cadenas en Python

Secuencia de escape

Las secuencias de escape se utilizan cuando se desea imprimir los símbolos especiales (que tienen significados especiales en Python) en la secuencia de salida. Por ejemplo, si quiere imprimir:

James asked, "Do you know Andrew's place?"

Aquí no puedes usar ni comillas simples ni dobles porque el texto contiene ambas comillas. Si intentas poner estas cadenas dentro de comillas simples o dobles, tendrás SyntaxError.

>>> print("James asked, "Do you know Andrew's place?"")
SyntaxError: invalid syntax
>>> print('James asked, "Do you know Andrew's place?"')	  
SyntaxError: invalid syntax

La solución a este problema es que se utilizan comillas triples o secuencias de escape. En Python, una secuencia de escape comienza con una barra invertida. Una barra invertida es una instrucción para el intérprete.

Si se utilizan comillas simples en la sentencia de impresión, se deben escapar todas las comillas simples del texto. Y de la misma manera, las comillas dobles del texto deben ser escapadas si está usando comillas dobles para representar una cadena.

#using triple quotation marks
print('''James asked, "Do you know Andrew's place?"''')

#escaping single quotes
print('James asked, "Do you know Andrew\'s place?"')

#escaping double quotes
print("James asked, \"Do you know Andrew's place?\"")

Considere la siguiente tabla en la que se describen las secuencias de escape de Python:

Secuencia de escape Descripción
\\ escapes backslash
\' escapes citas simples
\" escapes comillas dobles
\a una alerta o campana ASCII
\b genera un retroceso
\f genera Formfeed
\n genera una nueva línea.
\r salto de línea
\t genera una pestaña horizontal
\v genera una pestaña vertical
\ooo carácter octal ooo
\xHH carácter hexadecimal HH
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib
    
>>> print("First Line\nSecond Line")
First Line
Second Line

Cadena cruda r para ignorar la secuencia de escape

Puede ignorar la secuencia de escape de una cadena haciendo que sea una cadena sin procesar que se indique con r o R antes de la cadena.

En una cadena sin procesar las secuencias de escape son ignoradas. Vea el siguiente ejemplo:

#without r
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib

#with r  
>>> print(r"C:\\User\\Python36-32\\Lib")
C:\\User\\Python36-32\\Lib

Aquí puede ver que la secuencia de escape es ignorada.

El método format() de la cadena

El método format() es una poderosa herramienta para dar formato a las cadenas. En las cadenas formateadas, tiene marcadores de posición {} que son reemplazados por el método format().

Los argumentos de posición y de palabra clave se usan para especificar el orden de reemplazo.

#default placeholder
>>> s1 = "{}, {} and {}".format('Bread', 'Butter', 'Chocolate')
>>> print(s1)
'Bread, Butter and Chocolate'

#positional arguments
>>> s2 = "{1}, {2} and {0}".format('Bread', 'Butter', 'Chocolate')	  
>>> print(s2)
'Butter, Chocolate and Bread'

#keyword arguments
>>> s3 = "{a}, {x} and {c}".format(x = 'Bread', c = 'Butter', a = 'Chocolate')	  
>>> print(s3)
'Chocolate, Bread and Butter'
comments powered by Disqus