Python Multiuso

1,075 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,075
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Python Multiuso

  1. 1. Python multiuso En todo lugar, para toda ocasión... Francisco Palm ULA/Cenditel
  2. 2. Motivación <ul><ul><li>Hablar de lenguajes de programación sin programar es esotérico
  3. 3. Hablar de detalles de programación es largo y a veces soporífero </li></ul></ul><ul><li>Afortunadamente tenemos Python </li></ul>
  4. 4. ¿Python es? <ul><li>Tecnología de desarrollo libre, dinámica, multiplataforma, multiparadigma, de propósito general, extensible...
  5. 5. Diseñado para las personas </li><ul><li>Legible, elegante, sencillo, seguro, con pilas incorporadas... </li></ul></ul>
  6. 6. Menos código <ul><li>No hay que declarar las variables </li></ul>x,y,z = 2,'hola',pow <ul><li>Cada variable adquiere el tipo del valor asignado </li></ul>print z <built-in function pow>
  7. 7. Menos código <ul><li>No sólo medido en número de líneas, no hacen falta “{“, “}” o “begin” “end”, o perolitos como “$” o “#” en los identificadores. </li></ul>for i in range(5): if i == 3: print &quot;i es 3&quot;
  8. 8. Interactivo de fábrica <ul><li>Al ser interpretado puede ser utilizado en modo interactivo.
  9. 9. Sirve como calculadora, shell o ambiente de pruebas. </li></ul>$python $ipython
  10. 10. Todo es un objeto <ul><li>En python no hay primitivas, todo son objetos. </li></ul>>>> &quot;hola&quot;.upper() 'HOLA' >>> int(1).__add__(1) 2
  11. 11. Estructuras dinámicas <ul><li>Se cuenta con listas y diccionarios de fábrica, son dinámicos, manejan cualquier tipo de datos: </li></ul>l = [3,'cuatro',5j,[0x6a,0x6b]] d = {“fpalm”:[“impulsivo”,”distraido”, “extravagante”]}
  12. 12. Listas y comprensivas <ul><li>Forma compacta de hacer programación funcional como si nada . </li></ul>>>> li = ['tel','cite','cnti','a'] >>> [i for i in li if 'te' in i] ['tel', 'cite']
  13. 13. Viene con pilas incluídas <ul><li>La biblioteca estándar es extensa y no coarta las decisiones del programador. </li></ul>import smtplib server = smtplib.SMTP('localhost') server.sendmail('x@z','y@z','hola') server.quit()
  14. 14. Autodocumentado <ul><li>El código puede ser su propio manual de referencia. </li></ul>>>> def tome_pim(x): ... &quot;&quot;&quot; y haga pum! &quot;&quot;&quot; ... return &quot;pum(%s)&quot; % x >>> tome_pim.__doc__ ' y haga pum! '
  15. 15. Introspectivo <ul><li>Los objetos pueden verse a sí mismos, y sacar lo mejor de ellos! </li></ul>[(met, met.__doc__) for met in dir(math) if not(callable(getattr(math,met)))]
  16. 16. Captura de Errores <ul><li>Todos los errores se capturan como excepciones, ¡y te dicen donde está el error! </li></ul>
  17. 17. Captura de Errores Traceback (most recent call last): File &quot;simredes.py&quot;, line 229, in <module> lee_nom_arch() File &quot;simredes.py&quot;, line 90, in lee_nom_arch a_entrada = open(nombre_e,'r') IOError: [Errno 2] No such file or directory: '.DEF'
  18. 18. Habla web <ul><li>Desarrollo web ágil, Python provee todo el stack: servidor, base de datos y lógica! </li></ul>import BaseHTTPServer httpd = BaseHTTPServer.HTTPServer(('',8000), BaseHTTPServer.BaseHTTPRequestHandler) httpd.serve_forever()
  19. 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. 20. Thumbnails con PIL import os, sys, Image size = 128, 128 for infile in sys.argv[1:]: outfile = os.path.splitext(infile)[0] + &quot;-thumbnail.jpg&quot; try: im = Image.open(infile) im.thumbnail(size) im.save(outfile, &quot;JPEG&quot;) except IOError: print &quot;no se puede con&quot;, infile
  21. 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. 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('<<BR>> ',' ',flag)
  23. 23. Diagramas con pygraphviz from pygraphviz import * from random 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(&quot;star.png&quot;,prog=&quot;circo&quot;)
  24. 24. Conclusiones <ul><li>Python está en todos lados: el sistema operativo, Gimp, Firefox, Inkscape, Blender, Quantum GIS, GRASS GIS, el sistema estadístico R, OpenOffice, ...
  25. 25. No garantiza la felicidad pero te deja en la vuelta de la esquina... </li></ul>

×