Algoritmos de Programación con Python

6.1. Operaciones con cadenas

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.


Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.