Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

De 0 A Python En 40 Minutos

2,885 views

Published on

Charla introductoria al lenguaje Python dictada por Julián Cardonnet, en el marco de los festejos del Software Freedom Day 2009 en la ciudad de Tandil, Argentina

Published in: Technology
  • Be the first to comment

  • Be the first to like this

De 0 A Python En 40 Minutos

  1. 1. De 0 a Python en 40 minutos (tranquilos que no pica)
  2. 2. Python es: • Un lenguaje de programacion de alto nivel • Dinamico • Multiparadigma (funcional y OO) • Multiplataforma • Un tipo de serpiente
  3. 3. Sirve para: • Aplicaciones de escritorio y consola (QT, GTK+,wxWidgets, etc) • Scripting de aplicaciones en otros lenguajes (Jython, IronPython, etc) • System scripting • Aplicaciones y sistemas web • Recuperar el placer de programar
  4. 4. Algunas caracteristicas: • Gratis y Libre ( y Open Source, todo por el mismo precio) • Maduro (casi 20 años) • Diseño minimalista, elegante y robusto • Facil de aprender (se lee como pseudocodigo) • Expremadamente portable (Unix, Windows, Mac, Amiga, BeOS, Win/CE, DOS, OS/2, VMS, Cray, y muchas otras)
  5. 5. Que tiene de interesante? • Alto poder expresivo • Potente soporte de listas y diccionarios • Modo interactivo
  6. 6. Listas y diccionarios lista=*1,2,3,’cuatro’,objeto.metodo,*‘una’,’lista’,’anidada’++ Diccionario=,‘clave’:’valor’,1:*‘a’,’b’,’c’+,’lista’:lista} eventos=,‘onClick’: window.show, ’onESC’:window.close} >>>evento=‘Click’ >>>eventos.get(‘on’+evento)()
  7. 7. List Comprehension (Listas por comprencion) • Permite definir listas sin declarar explicitamente su contenido [<expresion> for <valor> in <coleccion> if <condicion>] Por ej: >>> [n for n in range(10) if n % 2 == 0 ] [0, 2, 4, 6, 8] >>> [n*n for n in range(5)] [0, 1, 4, 9, 16] >>>def esPar(n): return ((n%2) == 0) >>> [ n for n in range(10) if isPar(n) ] [0, 2, 4, 6, 8]
  8. 8. Generadores def primos(): n = 2 listaPrimos = [] while True: if not any(n % f == 0 for f in listaPrimos): yield n listaPrimos.append(n) n += 1
  9. 9. Y para que sirve? • En Python todo es un diccionario • Por ej, los archivos: >>archivo=open(“ texto.txt”) >>for (linea in archivo): print(linea) Los objetos tambien pueden verse asi…
  10. 10. Tirandose de cabeza: listas en accion Objetivo: insertar en una base de datos el contenido de un archivo CSV hubicado en un sitio web import MySQLdb conn = MySQLdb.connect (host = "localhost", user = "testuser", passwd = "testpass", db = "test") ejecutar=conn.cursor().execute def insertar(nombre,apellido,email): ejecutar(“INSERT INTO gente(“+nombre+’,’+apellido+’,’email+’)’) datos= urlopen("http://misitio.com/datos.csv") for (linea in datos): map(insertar,linea.split(“,”)) Epa! cursor.close () conn.close ()
  11. 11. Modo interactivo import mechanize br = mechanize.Browser() br.open("http://www.veraz.com.ar/") # y ahora??? >>>br.select_form(name=“login_form") #recibo un error informando que el formulario no existe >>>br.open("http://www.veraz.com.ar/login") #el form estaba en un frame >>>br.select_form(name=“login_form") #ahora si anda >>>br*“user"+ = “elusuario“ >>>br*“password"+ = “laclave“ Te quiero ver >>>respuesta = br.submit() haciendo esto en >>>print respuesta.geturl() # queria ir aca? C++ o Java…(si >>>respuesta=br.follow_link(“continuar“) podes…) >>>print respuesta .read() #veo el HTML de la pagina a donde me mando >>>archivo = file('test.html', 'w') >>>archivo.write(respuesta.read()) >>>archivo.close()
  12. 12. Duck Typing “Si se ve como un pato, se mueve como un pato y suena como un pato, entonces debe ser un pato.”
  13. 13. Ejemplo class TorresGemelas class EnanoEnfurecido def explotar(): def explotar(): print(“PUM!!”) print(“Callate gil!”) def reventar(cosa): cosa.explotar() >>reventar(TorresGemelas) PUM!! >>reventar(EnanoEnfurecido) Callate Gil!
  14. 14. Ejemplos de uso Proyectos grosos Aplicaciones: Juegos: • Youtube •BitTorrent •Frets on Fire • Gmail •Bazaar •Civilization 4 •Mercurial •Battlefield 2 • GoogleGroups •YUM •Eve Online • GoogleMaps •Portage • Reddit •Trac Como lenguaje de scripting: •Blender •Paint Shop Pro •Maya •Amarok •Poser •Totem •Inkscape •VIM •GIMP
  15. 15. Influencia en otros lenguajes • ECMAScritp incorporo iteradores, generadores, y list comprehensions • Groovy surgio para llevar la filosofia de Python a Java • Ocaml tiene una sintaxis opcional, llamada “twt” (The Whitespace Thing), inspirada por Python y Haskell
  16. 16. Mas informacion • Sitio oficial de Python: www.python.org • Grupo de usuarios PyAr www.python.org.ar • Google
  17. 17. Preguntas

×