python multiuso

Post on 24-Jun-2015

885 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Python es la mejor herramienta para el trabajo cotidiano, está en todos lados y dispuesto a hacerle feliz.

TRANSCRIPT

  • 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...

top related