Anda di halaman 1dari 30

CC2005 Algoritmos y programacin bsica Universidad del Valle de Guatemala Semestre 1 de 2012 Seccin 90

Departamento de Ciencia de la Computacin

Utilizar cadenas y sus mtodos. Conocer la operacin del tipo de datos: secuencias.

Departamento de Ciencia de la Computacin

Las cadenas son secuencias de caracteres Indices Recorridos: while y for Segmentos (slices) de la cadena. Las cadenas son inmutables Bsquedas y Conteos Mtodos de cadenas Operadores: in Comparaciones

Departamento de Ciencia de la Computacin

Las cadenas son secuencias de caracteres. Se puede acceder a un carcter de esta secuencia, usando []
>>>dia = 'domingo' >>>letra = dia[2] #obtiene una letra >>>print letra #cul letra muestra?

Departamento de Ciencia de la Computacin

El valor entre los corchetes [] se llama ndice e indica la posicin del caracter que queremos. >>> x = dia[2]
indica que queremos el carcter que est en la posicin 2 de la cadena.

Departamento de Ciencia de la Computacin

Observe que las cadenas inician a numerar sus posiciones en cero. >>>x = dia[0] >>>print x 'd'

Departamento de Ciencia de la Computacin

Recordemos, la funcin len() regresa la cantidad de caracteres en la cadena. >>>len(dia) 7

Departamento de Ciencia de la Computacin

La ltima letra de la cadena:


>>>dia[len(dia)] #Que sale?

Departamento de Ciencia de la Computacin

El ltimo carcter de la cadena se encuentra en la posicin len(cadena)-1: >>>ultimo = dia[len(dia) 1] >>>print ultimo o

Departamento de Ciencia de la Computacin

Para procesar un carcter a la vez:

indice = 0 #desde la posicin 0 while indice < len(cadena): #hasta la longitud letra = cadena[indice] #obtenemos el caracter print letra indice = indice + 1 #avanzamos al siguiente #caracter

Departamento de Ciencia de la Computacin

10

Otra forma: for letra in cadena: print letra

En cada iteracin, la variable letra toma el siguiente carcter de la cadena.

Departamento de Ciencia de la Computacin

11

Un segmento de la cadena:

>>>m = 'hola a todos' >>>m[0:4] 'hola

>>>m[7:12] 'todos'

Departamento de Ciencia de la Computacin

12

Pruebe usted estos segmentos: >>> n = 'buenos dias' >>>n[4:] #se omite final del segmento

>>>n[:4] #omite inicio del segmento

>>>n[:] #omite inicio y final

Departamento de Ciencia de la Computacin

13

Las cadenas no pueden cambiarse: >>>s = 'oola, amigos' >>>s[0] = 'h'

TypeError: object does not support item assigment

Departamento de Ciencia de la Computacin

14

Para modificar una cadena, la forma correcta es crear una nueva cadena:

>>>s = 'oola, amigos' >>>s2 = 'h' + s[1:] >>>print s2 'hola, amigos'

Departamento de Ciencia de la Computacin

15

def buscar(palabra, letra): index = 0 while index < len(palabra): if palabra[index] == letra: return index index = index + 1 return -1
Qu hace esta funcin?

Departamento de Ciencia de la Computacin

16

El cdigo anterior encuentra la posicin de letra dentro de la palabra que se manda como parmetro.
Regresa -1 si no existe esa letra en la palabra. Ejercicio: Modifquela para que tenga un tercer parmetro, que indique desde que posicin iniciar la bsqueda.
Departamento de Ciencia de la Computacin 17

def contar(palabra, letra): contador = 0 for caracter in palabra: if caracter == letra: contador = contador + 1 return contador

Departamento de Ciencia de la Computacin

18

Un mtodo es similar a una funcin. Recibe argumentos y regresa valores, pero se aplican sobre una variable ya creada y definida
Ejemplo el mtodo upper()

>>>palabra = 'hola' >>>print palabra.upper() 'HOLA'

Departamento de Ciencia de la Computacin

19

Note que se emplea un punto, seguido del nombre del mtodo y entre parntesis pueden darse los argumentos

>>>p = 'hola' >>>print p.count('h') 1

Departamento de Ciencia de la Computacin

20

Puede ver todos los mtodos de cadenas: http://docs.python.org/library/stdtypes.html# string-methods

Departamento de Ciencia de la Computacin

21

Cuando usted consulte la pgina de mtodos de cadenas, los [] indican argumentos opcionales.
Ejemplo: str.center(width,[fillchar]) indique que se puede incluir o no, el argumento fillchar. >>>'hola'.center(70) #que resultado da? >>>'hola'.center(70,'*') #que resultado da?

Departamento de Ciencia de la Computacin

22

Es un operador booleano que toma dos cadenas y regresa True, cuando la primer cadena se encuentra dentro de la segunda:

>>>'a' in 'hola' True >>>'x' in 'hola' False

Departamento de Ciencia de la Computacin

23

if fruta == manzanas' : print " manzanas!!!" El signo == sirve para ver si dos cadenas son iguales.

Departamento de Ciencia de la Computacin

24

>>> 'armando' < 'brenda' True Esto es porque la letra 'a' precede a la letra 'b'

Departamento de Ciencia de la Computacin

25

Qu resultado dan las siguientes expresiones?

>>> 'Armando' < 'armando'


>>>'armando' < 'Armando'

Departamento de Ciencia de la Computacin

26

Todas las letras maysculas preceden a las minsculas.

>>> 'Z' < 'a' True

Departamento de Ciencia de la Computacin

27

>>>ord('a') 97 >>>chr(98) 'b

chr (i): regresa el carcter cuyo cdigo ASCII es el nmero i ord(c): regresa un entero con el valor del cdigo ASCII del carcter c.
Departamento de Ciencia de la Computacin 28

Departamento de Ciencia de la Computacin

29

Ejercicio 1. Escriba una funcin que muestre las letras de una cadena ingresada por el usuario al revs >>>alReves('domingo') ognimod
Ejercicio 2. Escriba una funcin que reciba como parmetro una palabra y regrese la cantidad de vocales. Ojo: debe funcionar para palabras en maysculas y minsculas. Tip: Use el operador in
Departamento de Ciencia de la Computacin 30

Anda mungkin juga menyukai