View
212
Download
0
Category
Tags:
Preview:
Citation preview
El control de la computación 3día17, 23-feb-15SPAN 4350
Cultura computacional en español
Harry Howard
Tulane University
Organización del curso
23-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
Repaso
23-feb-2015
3
CultCompES, Prof. Howard, Tulane University
La travesía de 'advertencia'
23-feb-2015CultCompES, Prof. Howard, Tulane University
4
¡ O j o !
print letra
print letra
print letraprint letra
print letra
inicio
fin
23-feb-2015CultCompES, Prof. Howard, Tulane University
5
La comprensión de lista en la teoría de conjuntos
Teoría de los conjuntos: {e | e ∈ F & P(e)} "The set of e's such that e is an element of
F and P of e (e has the property P)." "El conjunto de e's tal que e es un
elemento de F y e tiene la propiedad P." En Python:
[e for e in F if p(e)] [e for e in fuente if condición]
En Unicode
1. advertencia = '¡Ojo!'.decode('utf8') 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']
23-feb-2015CultCompES, Prof. Howard, Tulane University
6
23-feb-2015CultCompES, Prof. Howard, Tulane University
7
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
23-feb-2015CultCompES, Prof. Howard, Tulane University
8
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?
23-feb-2015CultCompES, Prof. Howard, Tulane University
9
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.
Prácticahttp://www.tulane.edu/~howard/CompCultES/control.html#further-practice
Pon en una lista alfabetizada las palabras de La gitanilla que …
1. terminan en azo.2. que empiezan con en o em.3. que empiezan con en o em y que tienen más de 2 letras (para excluir
'en').4. tienen 8 o más letras.5. tienen más de 5 letras pero menos de 9.6. que son formas de salir pero no de saltar (cf. Prueba P3.2).7. terminan con ón pero no con ión (ó = u’\xf3).8. tienen un subrayado (al principio o final).9. tienen un carácter no alfanumérico.
23-feb-2015CultCompES, Prof. Howard, Tulane University
10
§8 El control de la computación
23-feb-2015
11
CultCompES, Prof. Howard, Tulane University
Una de expresiones regulares
Encuentra las palabras de "fruta" que tienen cuatro letras y terminan con 'a', con search(expresión regular, fuente, UNICODE).
1. >>> from re import search, UNICODE
2. >>> for p in fruta:
3. ... if search(r'^\w{3}a$', p.decode('utf8'), UNICODE):
4. ... print p,
5. ...
6. >>> pera
7. >>> [p for p in fruta if search(r'^\w{3}a$', p.decode('utf8'), UNICODE)]
8. >>> ['pera']
23-feb-2015CultCompES, Prof. Howard, Tulane University
12
23-feb-2015CultCompES, Prof. Howard, Tulane University
13
Condiciones encadenadas
1. >>> cadena = '¡Ojo!'.decode('utf8')2. >>> for c in cadena:3. ... if c.islower():4. ... print c, 'es una letra en minúscula'5. ... elif c.isupper():6. ... print c, 'es una letra en mayúscula'7. ... else:8. ... print c, 'no es una letra'9. ...10. ¡ no es una letra11. O es una letra en mayúscula12. j es una letra en minúscula13. o es una letra en minúscula14. ! no es una letra
23-feb-2015CultCompES, Prof. Howard, Tulane University
14
Como agregar a una lista en una travesía1. >>> cadena = '¡Ojo!'.decode('utf8')2. >>> min=[]; may=[]; nin=[]3. >>> for c in cadena:4. ... if c.islower():5. ... min.append(c)6. ... elif c.isupper():7. ... may.append(c)8. ... else:9. ... nin.append(c)10. ... 11. >>> min; may; nin12. ['j', 'o']13. ['O']14. [u'\xa1', '!']
Scripts
El próximo día
23-feb-2015CultCompES, Prof. Howard, Tulane University
15
Recommended