el control de la computación 2 día16, 20-feb-15 span 4350 cultura computacional en español harry...

23
El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Upload: eufemia-requena

Post on 11-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

El control de la computación 2día16, 20-feb-15SPAN 4350

Cultura computacional en español

Harry Howard

Tulane University

Page 2: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Organización del curso

20-feb-2015CultCompES, Prof. Howard, Tulane University

2

http://www.tulane.edu/~howard/Span4350/

http://www.tulane.edu/~howard/CompCultES/1. Computación cultural2. Python 3. Cadenas4. Unicode 5. Exreg 6. Archivos 7. Listas8. Control

Page 3: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Repaso

20-feb-2015

3

CultCompES, Prof. Howard, Tulane University

Page 4: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Operar sobre todos los elementos:travesía (traversal) o bucle (loop)

1. >>> advertencia = '¡Ojo!'.decode('utf8')2. >>> for letra in advertencia:3. ... print letra4. ... 5. ¡6. O7. j8. o9. !10. >>> for letra in advertencia:11. ... print letra12. File "<stdin>", line 213. print letra14. ^15. IndentationError: expected an indented block

20-feb-2015CultCompES, Prof. Howard, Tulane University

4

¡Ojo con la sangría (indentation)!

Page 5: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Funciona con listas también

1. >>> from nltk.corpus import PlaintextCorpusReader

2. >>> texlector = PlaintextCorpusReader('', 'Gitanilla.txt', encoding='utf-8')

3. >>> oracion = texlector.sents()[1]

4. >>> for palabra in oracion[:5]:

5. ... print palabra

6. ...

7. Parece

8. que

9. los

10. gitanos

11. y

20-feb-2015CultCompES, Prof. Howard, Tulane University

5

Page 6: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Práctica

Imprime el resultado de añadir el sufijo –ita a las palabras de la lista de frutas.

1.>>> fruta = ['pera', 'manzana', 'sandia', 'chirimoya', 'naranja']

2.>>> for p in fruta:3.… print p[:-1] + 'ita',4.…5.perita manzanita sandiita chirimoyita naranjita

20-feb-2015CultCompES, Prof. Howard, Tulane University

6

Page 7: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

§8 El control de la computación

20-feb-2015

7

CultCompES, Prof. Howard, Tulane University

Page 8: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Crear una lista con los resultados Si se imprime el resultado a la pantalla,

no está disponible para un procesamiento posterior.

Por lo tanto, queremos recoger el resultado de una travesía en una lista.

Python tiene un modismo (idiom) para esta tarea, que se llama una comprensión de lista (list comprehension).

20-feb-2015CultCompES, Prof. Howard, Tulane University

8

Page 9: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

20-feb-2015CultCompES, Prof. Howard, Tulane University

9

La comprensión de lista

Tiene la sintaxis de: [f(e) for e in fuente] o [e.f for e in fuente] donde f es una función que se aplica a cada elemento e de

la fuente f. Ejemplo: Recoge en una lista el largo las palabras de

"fruta". >>> [len(p) for p in fruta] [4, 7, 6, 9, 7] No se pueden hacer cadenas así, pero una lista de

cadenas, sí. Ejemplo: Recoge en una lista los caracteres en

mayúscula de "advertencia". >>> [c.upper() for c in advertencia] [u'\xa1', u'O', u'J', u'O', u'!']

Page 10: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Operar sobre algunos elementos El paso siguiente es operar sólo sobre

algunos de los elementos. Hay que agregar a la travesía una condición

con "if":>>> for c in advertencia:... if c != 'o':... print c,... ¡ O j !>>> [c for c in advertencia if c != 'o'][u'\xa1', u'O', u'j', u'!']

20-feb-2015CultCompES, Prof. Howard, Tulane University

10

Page 11: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Un ejemplo con una lista

>>> for p in fruta:... if len(p) > 4:... print p,... manzana sandia chirimoya naranja>>> [p for p in fruta if len(p) > 4]['manzana', 'sandia', 'chirimoya', 'naranja']

20-feb-2015CultCompES, Prof. Howard, Tulane University

11

Page 12: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Las pruebas o funciones condicionales

20-feb-2015

12

CultCompES, Prof. Howard, Tulane University

Page 13: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

20-feb-2015CultCompES, Prof. Howard, Tulane University

13

Operadores de relación

< menos de

<= inferior o igual a

== igual a (es de dos "=", no uno)

!= no es igual a

> mayor a

>= mayor o igual a

Page 14: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

20-feb-2015CultCompES, Prof. Howard, Tulane University

14

Ejemplos

1. >>> 4 < 52. True3. >>> len('ab') > len('a')4. True5. >>> 'ab' > 'a'6. True7. >>> 'a' == 'a'8. True9. >>> 'a' != 'a'10. False11. >>> 'abc' <= 'abc'12. True

Page 15: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Funciones (pruebas) de cadenas>>> c = 'informatica'

20-feb-2015CultCompES, Prof. Howard, Tulane University

15

Page 16: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Más ejemplos>>> may = 'BOOM'; num = '0123'; mezcla = 'Ojo!'

20-feb-2015CultCompES, Prof. Howard, Tulane University

16

Page 17: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

20-feb-2015CultCompES, Prof. Howard, Tulane University

17

Resumen de funciones (pruebas) de cadenas

t in c ¿t está en c?

c.islower() ¿los caracteres de c están en minúscula?

c.isupper() ¿los caracteres de c están en mayúscula?

c.isalpha() ¿los caracteres de c son alfabéticos?

c.isalnum() ¿los caracteres de c son alfanuméricos?

c.isdigit() ¿los caracteres de c son números?

c.istitle() ¿c tiene una mayúscula inicial y las demás minúsculas?

c.startswith('t') ¿c se inicia con t?

c.endswith('t') ¿c termina con t?

Page 18: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Condiciones complejas>>> c = 'informatica'

1. >>> not c.isupper()2. True3. >>> c.islower() and c.isalpha()4. True5. >>> c.islower() or c.isupper()6. True

20-feb-2015CultCompES, Prof. Howard, Tulane University

18

Page 19: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

20-feb-2015CultCompES, Prof. Howard, Tulane University

19

Resumen de condiciones complejas Si c es una condición,

not c es también una condición. Si hay dos condiciones c1 y c2,

c1 and c2, c1 or c2

son también condiciones.

Page 20: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Práctica

Encuentra las palabras de "fruta" que tienen 'y'.

1.>>> for p in fruta:2.... if 'y' in p:3.... print p,4.... 5.chirimoya6.>>> [p for p in fruta if 'y' in p]7.['chirimoya']

20-feb-2015CultCompES, Prof. Howard, Tulane University

20

Page 21: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Otra

Encuentra las palabras de "fruta" que tienen 'y' o 'j'.

1.>>> for p in fruta:2.... if 'y' in p or 'j' in p:3.... print p,4.... 5.chirimoya naranja6.>>> [p for p in fruta if 'y' in p or 'j' in p]

7.['chirimoya', 'naranja']20-feb-2015CultCompES, Prof. Howard, Tulane University

21

Page 22: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

En Unicode

Encuentra las palabras de "fruta" que tienen 's'.1. >>> fruta = ['pera', 'limón', 'sandía', 'chirimoya',

'naranja']2. >>> for p in fruta:3. ... if 's' in p.decode('utf8'):4. ... print p,5. ... 6. sandía7. >>> [p for p in fruta if 's' in p.decode('utf8')]8. ['sand\xc3\xada']9. >>> [p.decode('utf8') for p in fruta if 's' in p]10. [u'sand\xeda']

20-feb-2015CultCompES, Prof. Howard, Tulane University

22

Page 23: El control de la computación 2 día16, 20-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

P4?Más control de la computación

El próximo día

20-feb-2015CultCompES, Prof. Howard, Tulane University

23