Ya vimos en la sección 2.4 que es posible:
Sumar cadenas entre sí (y el resultado es la concatenación de todas las cadenas dadas):
>>> "Un divertido "+"programa "+"de "+ "radio"
'Un divertido programa de radio'
>>>
Multiplicar una cadena s
por un número k
(y el resultado es la concatenación de s
consigo misma, k
veces):
>>> 3 * "programas "
'programas programas programas '
>>> "programas " * 3
'programas programas programas '
>>>
A continuación, otras operaciones y particularidades de las cadenas.
6.1.1. Obtener el largo de una cadena
Además, se puede averiguar la longitud de una cadena utilizando una
función provista por Python: len{}
.
>>> len("programas ")
10
>>>
Existe una cadena especial, que llamaremos cadena vacía, que es la cadena que no contiene ningún carácter (se la indica sólo con un apóstrofe o comilla que abre, y un apóstrofe o comilla que cierra), y que por lo tanto tiene longitud cero:
>>> s=""
>>> s
''
>>> len(s)
0
>>>
6.1.2. Una operación para recorrer todos los caracteres de una cadena
Python nos permite recorrer todos los caracteres de una cadena de manera muy sencilla, usando directamente un ciclo definido:
>>> for x in "programas ":
... print x
...
p
r
o
g
r
a
m
a
s
>>>
6.1.3. Acceder a una posición de la cadena
Queremos averiguar cuál es el carácter que está en la posición i-ésima
de una cadena. Para ello Python nos provee de una notación con
corchetes: escribiremos a[i]
para hablar de la posición i-ésima de la
cadena a
.
Trataremos de averiguar con qué letra empieza una cadena.
>>> a="Veronica"
>>> a[1]
'e'
>>>
Algo falló: ¡a[1]
nos muestra la segunda letra, no la primera! Lo que
sucede es que en Python las posiciones se cuentan desde 0
.
>>> a[0]
'V'
>>>
Ahora sí hemos conseguido averiguar en Python cuál es el primer
carácter de a
. Algunos ejemplos de acceso a distintas posiciones en
una cadena.
Advertencia Las distintas posiciones de una cadena a se llaman índices. Los índices son números enteros que pueden tomar valores entre -len(a)
y len(a) - 1
.
Los índices entre 0
y len(a) - 1
son lo que ya vimos: los caracteres de la cadena del primero al útimo. Los índices negativos proveen una notación que hace más fácil indicar cuál es el último carácter de la cadena: a[-1]
es el último carácter de a
, a[-2]
es el penúltimo carácter de a
, a[-len(a)]
es el primer carácter de a
.
>>> a="Veronica"
>>> len(a)
8
>>> a[0]
'V'
>>> a[7]
'a'
>>> a[8]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> a[-1]
'a'
>>> a[-8]
'V'
>>> a[-9]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>>
Ejercicio 6.1. Escribir un ciclo que permita mostrar los caracteres de una cadena del final al principio.