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 dobles y simples, o bien utilizar carácter de barra invertida o backslash (\):
'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'
'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:
print(c)
c + c
Esto es una cadena
con dos líneas
'Esto es una cadena\ncon dos líneasEsto es una cadena\ncon dos líneas
print(c + c)
Esto es una cadena
con dos líneasEsto es una cadena
con dos líneas
s = "Una cadena" " compuesta de dos cadenas"
print(s)
Una cadena compuesta de dos cadenas
c1 = "Una cadena"
c2 = "otra cadena"
print("Una cadena " + c2)
Una cadena otra cadena
También es posible realizar una multiplicación de cadenas:
diez_espacios = " " * 10
print(diez_espacios + "un texto a diez espacios")
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.
palabra = "Python"
palabra[0]
palabra[3]
'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:
palabra = "Python"
palabra[-1]
palabra[-2]
palabra[-6]
'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)
palabra = "Python"
palabra[0:2]
palabra[2:]
palabra[:2]
palabra[:]
'Py'
'thon'
'Py'
'Python'
Si un índice se encuentra fuera del rango de la cadena, el intérprete de Python dará error:
palabra[99]
IndexError: string index out of range
Pero con slicing esto no pasa y simplemente se considera el espacio como vacío:
palabra[:99]
palabra[99:]
'Python'
''
Una propiedad de las cadenas es la inmutabilidad, no se pueden modificar. Si intentamos reasignar un carácter, no nos dejará:
palabra[0] = "N"
TypeError: 'str' object does not support item assignment
Sin embargo, utilizando slicing y concatenación, podemos generar nuevas cadenas fácilmente:
palabra = "N" + palabra[1:]
palabra
'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):
len(palabra)
6