Curso de Python
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Trabajando con cadenas de caracteres

Para incluir unas comillas dentro de una cadena de caracteres debemos recurrir a cualquiera de las dos opciones que se cven a continuación, bien jugar con la alternancia entre comillas doblessimples, o bien utilizar carácter de barra invertidabackslash (\):

In

'Este texto incluye unas " " '

"Esta 'palabra' se encuentra escrita entre comillas simples"

"Esta \"palabra"\ se encuentra escrita entre comillas dobles"

'Esta \'palabra'\ se encuentra escrita entre comillas simples'

Out

'Este texto incluye unas " " '

"Esta 'palabra' se encuentra escrita entre comillas simples"

'Esta "palabra" se encuentra escrita entre comillas dobles'

"Esta 'palabra' se encuentra escrita entre comillas simples"

Una cosa a tener en cuenta es, que al copiar código de un procesador de textos debe tenerse especial cuidado porque es posible que las comillas no se correspondan con las utilizadas en Python, por lo que el intérprete no lo entenderá como una cadena y dará error.

También puede ocurrir este error cuando se descarga código fuente codificado en otra región del mundo, donde la codificación de caracteres sea diferente y el carácter de la comilla no sea igual que en España. Normalmente hay menos problemas con la doble comilla que con la comilla simple.

Una de las operaciones más comunes que se puede realizar con cadenas es la concatenación o suma de cadenas. Se suele realizar con el operador "+", aunque hay varias formas de realizarla, como se ve a continuación:

In

print(c)

c + c

Out

Esto es una cadena

con dos líneas

'Esto es una cadena\ncon dos líneasEsto es una cadena\ncon dos líneas

In

print(c + c)

Out

Esto es una cadena

con dos líneasEsto es una cadena

con dos líneas

In

s = "Una cadena" " compuesta de dos cadenas"

print(s)

Out

Una cadena compuesta de dos cadenas

In

c1 = "Una cadena"

c2 = "otra cadena"

print("Una cadena " + c2)

Out

Una cadena otra cadena

También es posible realizar una multiplicación de cadenas:

In

diez_espacios = " " * 10

print(diez_espacios + "un texto a diez espacios")

Out

          un texto a diez espacios

Los índices nos permiten posicionarnos en un carácter específico de una cadena y acceder a él. Representan un número [índice], que empezando por el 0 indica el carácter de la primera posición, y así sucesivamente.

In

palabra = "Python"

palabra[0]

palabra[3]

Out

'P'

'h'

un índice negativo hace referencia al carácter de la cadena comenzando por la última posición y en sentido inverso. Esto quiere decir que el índice -1 será igual a la última posición, el -2 al penúltimo, y así sucesivamente:

In

palabra = "Python"

palabra[-1]

palabra[-2]

palabra[-6]

Out

'n'

'o'

'P'

El slicing (rebanado) es una capacidad que tienen las cadenas de devolver un subconjunto o subcadena utilizando dos índices [inicio:fin]. El primer índice indica donde empieza la subcadena (se incluye el carácter) y el segundo índice indica donde acaba la subcadena (se excluye el carácter)

In

palabra = "Python"

palabra[0:2]

palabra[2:]

palabra[:2]

palabra[:]

Out

'Py'

'thon'

'Py'

'Python'

Si un índice se encuentra fuera del rango de la cadena, el intérprete de Python dará error:

In

palabra[99]

Out

IndexError: string index out of range

Pero con slicing esto no pasa y simplemente se considera el espacio como vacío:

In

palabra[:99]

palabra[99:]

Out

'Python'

''

Una propiedad de las cadenas es la inmutabilidad, no se pueden modificar. Si intentamos reasignar un carácter, no nos dejará:

In

palabra[0] = "N"

Out

TypeError: 'str' object does not support item assignment

Sin embargo, utilizando slicing y concatenación, podemos generar nuevas cadenas fácilmente:

In

palabra = "N" + palabra[1:]

palabra

Out

'Nython'

Una función muy útil que soportan las cadenas es len(), que nos permite saber su longitud (el número de caracteres que contienen):

In

len(palabra)

Out

6