Python Multiuso
-
Upload
francisco-palm -
Category
Technology
-
view
881 -
download
5
description
Transcript of Python Multiuso
- 1. Python multiuso En todo lugar, para toda ocasin... Francisco Palm ULA/Cenditel
2. Motivacin
-
- Hablar de lenguajes de programacin sin programar es esotrico
- 3. Hablar de detalles de programacin es largo y a veces soporfero
- Afortunadamente tenemos Python
4. Python es?
- Tecnologa de desarrollo libre, dinmica, multiplataforma, multiparadigma, de propsito general, extensible...
5. Diseado para las personas
- Legible, elegante, sencillo, seguro, con pilas incorporadas...
6. Menos cdigo
- No hay que declarar las variables
x,y,z = 2,'hola',pow
- Cada variable adquiere el tipo del valor asignado
print z 7. Menos cdigo
- No slo medido en nmero de lneas, no hacen falta {, } o begin end, operolitoscomo $ o # en los identificadores.
for i in range(5): if i == 3: print "i es 3" 8. Interactivo de fbrica
- Al ser interpretado puede ser utilizado en modo interactivo.
9. Sirve como calculadora, shell o ambiente de pruebas. $python $ipython 10. Todo es un objeto
- En python no hay primitivas, todo son objetos.
>>> "hola".upper() 'HOLA' >>> int(1).__add__(1) 2 11. Estructuras dinmicas
- Se cuenta con listas y diccionariosde fbrica, son dinmicos, manejan cualquier tipo de datos:
l = [3,'cuatro',5j,[0x6a,0x6b]] d = {fpalm:[impulsivo,distraido, extravagante]} 12. Listas y comprensivas
- Forma compacta de hacer programacin funcionalcomo si nada .
>>> li = ['tel','cite','cnti','a'] >>> [i for i in li if 'te' in i] ['tel', 'cite'] 13. Viene con pilas includas
- La biblioteca estndar es extensa y no coarta las decisiones del programador.
import smtplib server = smtplib.SMTP('localhost') server.sendmail('x@z','y@z','hola') server.quit() 14. Autodocumentado
- El cdigo puede ser su propio manual de referencia.
>>> def tome_pim(x): ...""" y haga pum! """ ...return "pum(%s)" % x >>> tome_pim.__doc__ ' y haga pum! ' 15. Introspectivo
- Los objetos pueden verse a s mismos, y sacar lo mejor de ellos!
[(met, met.__doc__) for met in dir(math) if not(callable(getattr(math,met)))] 16. Captura de Errores
- Todos los errores se capturan como excepciones, y te dicen donde est el error!
17. Captura de Errores Traceback (most recent call last): File "simredes.py", line 229, in lee_nom_arch() File "simredes.py", line 90, in lee_nom_arch a_entrada = open(nombre_e,'r') IOError: [Errno 2] No such file or directory: '.DEF' 18. Habla web
- Desarrollo web gil, Python provee todo el stack: servidor, base de datos y lgica!
import BaseHTTPServer httpd =
BaseHTTPServer.HTTPServer(('',8000),
BaseHTTPServer.BaseHTTPRequestHandler) httpd.serve_forever() 19.
Python calculadora >>> (1+2j)/(1+1j) (1.5+0.5j)
>>> from scipy.integrate import quad >>> import
math >>> quad(lambda x: math.exp(-x), 0, 4.5)
(0.98889100346175751, 1.0978895608879186e-14) 20. Thumbnails con
PIL import os, sys, Image size = 128, 128 for infile in
sys.argv[1:]: outfile = os.path.splitext(infile)[0] +
"-thumbnail.jpg" try: im = Image.open(infile) im.thumbnail(size)
im.save(outfile, "JPEG") except IOError: print "no se puede con",
infile 21. Tomar notas con Synoptic $ apt-get install
python-setuptools $ sudo easy_install synoptic $ synoptic flisol
serving at http://127.0.0.1:7331/... 22. Jugar con gedit def
clean_moin(window): doc = window.get_active_document() flag = 0
doc.replace_all(' `',' {{{ ',flag) doc.replace_all('` ',' }}}
',flag) doc.replace_all('
',' ',flag) 23. Diagramas con pygraphviz from pygraphviz import *
fromrandom import randint A = AGraph() for i in range(16):
A.add_edge(randint(0,15),i) n = A.get_node(i) print A.string()
A.draw("star.png",prog="circo") 24. Conclusiones
- Python est en todos lados: el sistema operativo, Gimp, Firefox, Inkscape, Blender, Quantum GIS, GRASS GIS, el sistema estadstico R, OpenOffice, ...
25. No garantiza la felicidad pero te deja en la vuelta de la esquina...