00 introducción a Python

download 00 introducción a Python

If you can't read please download the document

description

Taller Python IAC: Breve introducción a Python

Transcript of 00 introducción a Python

  • 1. HINTRODUCCIN APYTHONJuan Ignacio Rodrguez de Lenjileon en twittereuribates @ gmail.com

2. Breve historia de Python Creado a finales de los 80 por el Holands GuidoVan Rossum. Deriva de un lenguaje previo llamado ABC. El objetivo era un lenguaje de programacin de altonivel, con una sintaxis muy limpia, fcil de leer ymultiplataforma. Con soporte para distintos estilos de programacin:Imperativa, orientada a objetos y funcional. El nombre proviene del grupo de humor ingls MontyPython, no de la serpiente. 3. Monty Python Flying Circus 4. Python 2.7 o Python 3.x Python 3.x no es compatible hacia atrs conPython 2.7 Muchos mdulos de terceros aun no hanmigrado a Python 3.x Python 2.7 es el paso natural: con levesmodificaciones es capaz de ejecutar cdigo2.7 o cdigo 3.x En este taller usaremos Python 2.7 5. Por qu Python? Desarrollo rpido Sencillo pero potente Fcil de leer Software abierto No se entromete (Entre t y el problema) Interpretado (Pero tambin compilado) Fcil de extender Libreras estndar Paquetes externos 6. Dasarrollo rpido Lenguaje de alto nivel Desarrollo de prototipos Herramientas de anlisis derendimiento Facilidad para reescribir laspartes crticas en otroslenguajesPlan to throw one away. You will anyway-- Fred Brooks, The Mythical Man-Month 7. Lo que el cliente necesita 8. Sencillo pero potenteEs un lenguaje compactoNew Hackers Dictionaryhttp://www.catb.org/~esr/jargon/html/C/compact.htmlcompacto adj. Dicho de un diseo, describe ladeseable propiedad de poder ser aprehendidode una vez en la cabeza de uno.El ser compacto no implica trivialidad o falta depotencia: Por ejemplo, el lenguaje C es ms compactoque Fortran, y a la vez, ms potente. 9. Fcil de leerPrograms must bewritten for people toread, and onlyincidentally formachines to execute.-- Abelson & Sussman, Structure andInterpretation of Computer Programs 10. Qu hace este programa?lista = [7, 23, 44, -2, 52]suma = 0.0for i in lista:suma = suma + im = suma/len(lista)print("Promedio:", m)lista = [7, 23, 44, -2, 52]suma = 0.0for i in lista:suma = suma + im = suma/len(lista)print("Promedio:", m) 11. Una versin ms cortalista = [7, 23, 44, -2, 52]print("Promedio:", sum(lista)/len(lista))lista = [7, 23, 44, -2, 52]print("Promedio:", sum(lista)/len(lista)) 12. Software Libre Menos errores: Con los suficientes ojos, todoslos errores son obvios (Ley de Linus) Ms facilidad de desarrollo de mdulos,extensiones y sistemas paralelos Sin puertas traseras y ms seguro Crecimiento exponencial Etc... 13. No se entromete (Entre el problema y tu)http://en.wikipedia.org/wiki/Rube_Goldberg 14. Para qu no es bueno Python Desarrollo a bajo nivel ("Cerca de la mquina"),como drivers, kernels o sobre hardware limitado. Aplicaciones que requieran sobre todo altacapacidad de cmputo, o en las que sea crticoobtener el mximo rendimiento. Aplicaciones multi-thread sobre sistemas conmltiples procesadores. pueden tener problemas de rendimiento si no se tienen encuenta las restricciones que impone el GIL. 15. Python como calculadoraAbrimos una terminal: [Control] + [Alt] + [T] si estamos en Linux [Windows] + [R] en Windows o si no funciona Iniciotodos los programas Accesorios Smbolo desistema. [Ctrl] + [SpaceBar] y escribir term en MAC OS/XEscribimos python + [Enter] 16. La Shell de Python 17. Cosas a probar en la shellimport thishelp()dir()help(dir)2+32**20007>2exit()import thishelp()dir()help(dir)2+32**20007>2exit() 18. El programa Hola, Mundo Ejemplo habitual cuandoaprendemos un nuevo lenguaje. El programa ms sencilloposible capaz de hacer algo. Normalmente escribir el texto"hola mundo" La tradicin se remonta a The CProgramming Language, deBrian Kernighan y DennisRitchie 19. Hola, mundo, versin Javaclass HolaMundo {public static void main (String args[]) {System.out.print("Hola, Mundon");}}class HolaMundo {public static void main (String args[]) {System.out.print("Hola, Mundon");}} 20. Hola, mundo, version C#using System;class Program{public static void Main(){Console.WriteLine("Hello, world!");}}using System;class Program{public static void Main(){Console.WriteLine("Hello, world!");}} 21. Hola, Mundo versin COBOLIDENTIFICATION DIVISION.PROGRAM-ID. HELLO-WORLD.PROCEDURE DIVISION.DISPLAY Hello, world!.STOP RUN.IDENTIFICATION DIVISION.PROGRAM-ID. HELLO-WORLD.PROCEDURE DIVISION.DISPLAY Hello, world!.STOP RUN. 22. Hola, mundo, version Pythonprint(Hola, Mundo)print(Hola, Mundo) 23. Zen del lenguaje Python (1) Bello es mejor que feo Explcito es mejor que implcito Simple es mejor que complejo Complejo es mejor que complicado Plano es mejor que anidado Disperso es mejor que denso La legibilidad cuenta Los casos especiales no son tan especialescomo para quebrantar las reglas Aunque lo prctico gana a la pureza 24. Zen del lenguaje Python (2) Los errores nunca deberan dejarse pasarsilenciosamente A menos que hayan sido silenciadosexplcitamente Frente a la ambigedad, rechaza la tentacinde adivinar Debera haber una -y preferiblemente slouna- manera obvia de hacerlo Aunque esa manera puede no ser obvia alprincipio a menos que usted sea holands 25. Zen de Python (3) Ahora es mejor que nunca Aunque nunca es a menudo mejor que yamismo Si la implementacin es difcil de explicar,es una mala idea Si la implementacin es fcil de explicar,puede que sea una buena idea Los espacios de nombres (namespaces) sonuna gran idea Hagamos ms de esas cosas!