![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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/1.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/3.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/4.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/7.jpg)
§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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/10.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/11.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/12.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/18.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/19.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/20.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022042607/5528bde8497959977d8fe986/html5/thumbnails/23.jpg)
P4?Más control de la computación
El próximo día
20-feb-2015CultCompES, Prof. Howard, Tulane University
23