scripts y funciones día18, 25-feb-15 span 4350 cultura computacional en español harry howard...

16
Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Upload: rico-zermeno

Post on 28-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Scripts y funcionesdía18, 25-feb-15SPAN 4350

Cultura computacional en español

Harry Howard

Tulane University

Page 2: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Organización del curso

25-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: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

La travesía de 'advertencia'

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

3

¡ O j o !

print letra

print letra

print letraprint letra

print letra

inicio

fin

Page 4: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry 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']

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

4

Page 5: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

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

5

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

Page 6: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

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

6

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', '!']

Page 7: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

§8 Scripts

25-feb-2015

7

CultCompES, Prof. Howard, Tulane University

Page 8: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

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

8

Presentación

Para ahora habrás escrito y reescrito un montón de código en el intérprete interactivo de Python.

Si te equivocas al volver a escribir un ejemplo complejo, tienes que entrarlo todo de nuevo.

Utilizar las teclas de flecha para acceder y modificar los comandos anteriores es útil, pero no soluciona el problema.

En esta sección vemos dos aspectos importantes para la reutilización de código: el editor de Spyder las funciones de Python.

Page 9: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

El editor de Spyder

Con Spyder, baja el menú File y abre una nuevo documento.

Entra el siguiente programa en una línea: print 'Viva Mardi Gras!'

Guarda este programa como "viva.py" y luego ir al menú Run y seleccionar el comando Run.

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

9

Page 10: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Un script para abrir la Gitanilla Con Spyder, baja el menú File y abre una nuevo

documento. Entra lo siguiente:1. from nltk.corpus import PlaintextCorpusReader

2. texlector = PlaintextCorpusReader('', 'Gitanilla.txt', encoding='utf8')

3. texto = texlector.words()

4. Guárdalo como "procesaTexto.py".

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

10

Page 11: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Funciones

25-feb-2015

11

CultCompES, Prof. Howard, Tulane University

Page 12: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

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

12

La función

Una función es sólo un bloque de código con nombre que realiza una tarea bien definida.

Una función se suele definirse para que acepte algunos entradas, utilizando

variables especiales conocidos como parámetros, y puede producir un resultado, también conocido como

valor de retorno. Definimos una función utilizando

la palabra clave def seguida por el nombre de la función y los parámetros

de entrada, seguida por el cuerpo de la función.

Page 13: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

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

13

Un ejemplo

Con Spyder, baja el menú File, abre una nuevo documento y entra lo siguiente:

1. from __future__ import division

2. def diversidad_lexica(texto):

3. cuenta_palabras = len(texto)

4. tamano_vocabulario = len(set(texto))

5. diversidad_lexica = cuenta_palabras / tamano_vocabulario

6. return diversidad_lexica

Guárdalo como "funciones.py".

Page 14: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

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

14

Explicación

Observe que hemos creado algunas variables nuevos en el cuerpo de la función.

Estas son las variables locales y no son accesibles fuera de la función.

Una función no hace nada hasta que no se "llame" (o "invoque"), ver diapositiva siguiente.

Page 15: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Invócalo

Ejecuta (run) "procesaTexto.py" si no lo has hecho.

1. >>> from funciones import diversidad_lexica

2. >>> diversidad_lexica(texto)

3. 4.868782722513089

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

15

Page 16: Scripts y funciones día18, 25-feb-15 SPAN 4350 Cultura computacional en español Harry Howard Tulane University

Como extraer el texto de páginas web y proveedores de blogs

El próximo día

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

16