Cadenas en Python. Clase 11 (3 de mayo, 2011)

Anuncio
Tipos estructurados en Python:
Cadenas
Clase 8
Introducción a la computación
Patricia Borensztejn
Cadenas (Strings)
• Cadena: es un tipo del lenguaje: el tipo str.
>>> nombre="patricia"
>>> type(nombre)
<type 'str'>
>>>
• Podemos encerrar la cadena en comillas simples,
dobles o incluso triples:
• La comilla triple nos ahorra de tener que poner
un ´/n´ en la cadena.
Operadores y Funciones para cadenas
• Operador +: operador de concatenación
• Operador *: operador de repetición
• Operador %: operador de formato, devuelve
una cadena donde las marcas de formato se
reemplazan por el resultado de evaluar esas
expresiones
Operadores y funciones
• Operador %
Funciones
• int,float,str,ord,chr:
>>> 10+int("12345678")
12345688
>>> "1234"+str(12345678)
'123412345678'
>>> a=ord("A")
>>> print a
65
>>> i=chr(66)
>>> print i
B
>>> 10+int("12345678")
12345688
>>> 10.0+float("0.1234")
10.1234
Métodos
• Ya veremos que son los métodos, pero por
ahora podemos usarlos….
Carácter Especial: \
• La hemos usado muchas veces así: \n (tanto en C como en Python)
• Se llama «carácter de escape» y sirve para avisar que lo que viene a
continuación (en este caso el carácter «n» tiene un significado
especial.
• La secuencia \n significa newline (Ascii 10)
• La secuencia \t significa tab
• Para imprimir el carácter \ hay que escribirlo dos veces \\
Otras secuencias de escape
Cadenas «raw»
• Las cadenas de tipo raw se interpretan tal y
como las escribimos sin caracteres especiales.
• A diferencia de C, si intentamos
acceder a un elemento fuera
de la cadena, el intérprete da
error.
Indexación
• Los elementos de la cadena se pueden
acceder individualmente, como en C,
utilizando indexación.
• También , como en C, las cadenas almacenan
a partir del índice 0.
• A diferencia de C, si intentamos
acceder a un elemento fuera
de la cadena, el intérprete da
error.
Cadenas, Indexación
• Pueden indexarse con índices negativos: el -1
indica el último carácter de la cadena.
Recorrido de cadenas
• Se utiliza la estructura de control: for..in
Inversión de una cadena
Operador de «corte»: :
• El operador de corte : se introduce dentro de
la indexación a[i:j] y significa que la cadena
resultado (o subcadena) estará formada por
los elementos:
– a[i], a[i+1],….a[j-1]
Asignaciones: lo que no se puede
hacer en C
• …en Python si que se puede…
• Y lo que sucede es lo siguiente:
• Es decir, lo que se copia es la referencia , no la
cadena
Asignaciones
• Es decir, la operación de asignar una cadena a
otra NO ocupa mas memoria. La cadena NO se
duplica.
La concatenación
• En cambio… si ocupa mas memoria.
• La primera sentencia reserva memoria para a e
inicializa esta memoria.
• La segunda sentencia reserva espacio para a mas
uno, luego copia de a, a esa zona de memoria,
luego, cambia el puntero de a para que apunte a
la nueva zona. Y finalmente, la zona anterior que
ocupaba a, es liberada (marcada como libre).
Comparaciones de cadenas
• También las podemos hacer en Python:
>>> guess ="a"
>>> correct = "b"
>>> if guess==correct:
... print "That´s it!\n"
...
Programa : Palíndromes
• Hacer un programa para averiguar si una frase es
o no palíndrome.
• Ejemplos de frases palíndromas:
–
–
–
–
–
«luz azul»
«la ruta natural»
«sé verla al revés»
«123321»
«Dábale arroz a la zorra el Abad» (esta es una de las
más conocidas)
– «Átale, demoníaco Caín, o me delata»
– Y mil otras mas…..ojo con las acentuaciones…
Descargar