De Cero A Python En 45 Min

10,334 views

Published on

charla de carlitox

Published in: Education, Technology
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total views
10,334
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
820
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide

De Cero A Python En 45 Min

  1. 1. SaltaLUG y Point To Null Presentan: De cero a en 45 minutos
  2. 2. De cero a Python en 45' La historia de Python Durante las vacaciones de navidad de 1990 Guido van Rossum se aburrió y, como quien dice «hago algo útil mientras hierve la pava», se puso a desarrollar Python. La idea era crear un lenguaje sucesor de ABC que además fuera capaz de manejar excepciones e Interactuar fluidamente con el sistema operativo.
  3. 3. De cero a Python en 45' La historia de Python
  4. 4. De cero a Python en 45' La historia de Python
  5. 5. ¿Que es Python? De cero a Python en 45'
  6. 6. ¿Que es Python? De cero a Python en 45' Amigable
  7. 7. ¿Que es Python? De cero a Python en 45' Amigable Poderoso
  8. 8. ¿Que es Python? De cero a Python en 45' Amigable Flexible Poderoso
  9. 9. ¿Que es Python? De cero a Python en 45' Amigable Extensible Flexible Poderoso
  10. 10. ¿Que es Python? De cero a Python en 45' Amigable Extensible Flexible Poderoso Embebible
  11. 11. Operaciones básicas De cero a Python en 45' Python es fuertemente tipado: significa que los tipos de datos se mantienen de forma consistente. Un texto nunca se comportará como si fuera un número. Python es dinámicamente tipado: significa que se puede cambiar el tipo de datos contenido en una variable en cualquier momento y lugar. Python es multiparadigma: significa que, en lugar de forzarnos a un estilo de programación en particular, permite varios estilos: estructural, funcional, orientado a objetos, orientado a aspectos... ect. Python es un sistema de objetos puro y consistente: en Python todo es un objeto. Esto lo hace deliciosamente predecible.
  12. 12. De cero a Python en 45' <ul><ul><ul><li>> (mayor)
  13. 13. <= (menor o igual)
  14. 14. => (mayor o igual)
  15. 15. in (pertenencia)
  16. 16. is (identidad)
  17. 17. not (negación)
  18. 18. and (conjunción)
  19. 19. or (disyunción) </li></ul></ul></ul>Operaciones básicas Asignar una variable es muy sencillo: variable = valor También trabajar con las operaciones mas comunes: <ul><ul><ul><li>+ (adicción)
  20. 20. - (substracción)
  21. 21. * (producto)
  22. 22. / (división)
  23. 23. % (modulo o resto)
  24. 24. ** (potencia)
  25. 25. == (igualdad)
  26. 26. != (desigualdad)
  27. 27. < (menor) </li></ul></ul></ul>
  28. 28. Operaciones básicas # No hay mucho secreto en comprender como # funcionan estos operadores, ¿verdad? # No iba a poner los ejemplos estos pero me # sobró una diapositiva. De cero a Python en 45' a = 6 b = 2 a / b 3 a * b 12 a % b 2 a == b False a != b True a < b False a > b True
  29. 29. Operaciones básicas De cero a Python en 45' C Python
  30. 30. Operaciones básicas De cero a Python en 45' int a = 1; C Python
  31. 31. Operaciones básicas De cero a Python en 45' int a = 1; a = 1 C Python
  32. 32. Operaciones básicas De cero a Python en 45' int a = 1; a = 2; a = 1 C Python
  33. 33. Operaciones básicas De cero a Python en 45' int a = 1; a = 2; a = 1 a = 2 C Python
  34. 34. Operaciones básicas De cero a Python en 45' int a = 1; a = 2; Int b = a a = 1 a = 2 C Python
  35. 35. Operaciones básicas De cero a Python en 45' int a = 1; a = 2; Int b = a a = 1 a = 2 b = 2 C Python
  36. 36. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 3 b Operaciones básicas
  37. 37. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 3 b Operaciones básicas
  38. 38. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 3 b Operaciones básicas
  39. 39. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 3 b Operaciones básicas
  40. 40. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 1 3 b Operaciones básicas
  41. 41. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 1 4 3 b Operaciones básicas
  42. 42. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 1 4 3 b Operaciones básicas
  43. 43. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 4 3 b Operaciones básicas
  44. 44. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 3 b 42 4 Operaciones básicas
  45. 45. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 3 b 42 4 Operaciones básicas
  46. 46. De cero a Python en 45' <ul># Creación, Asociación a=3 # Asociación b=a # Otra vez... c=3 # Disociación del(a) # Reasociación b=b+1 # Multiasignación a=b=42 Nombres: a-z, A-Z, 0-9, _ </ul>a c 3 b 42 Operaciones básicas
  47. 47. Operaciones básicas De cero a Python en 45' Ejemplificando el dinamismo de Python, de paso vemos algunos tipos: variable = 14 # Es un entero variable = “Una pequeña frase” # Ahora es un texto variable = [1, 2, 3, 4] # Ya es una lista variable = {1: “Uno”, 2:”Dos”, 3:”Tres”} # Y diccionario Esto significa que, conforme lo necesitemos, podremos cambiar el valor y el comportamiento de las variables para que se adapten a la evolución del programa.
  48. 48. Estructuras de control De cero a Python en 45' En C En Python if (x <= y) puts (x); x++; if x < y: print x x += 1 En Python n o hay marcadores de inicio ni fin de bloque. Un bloque es toda la porción de código continua que tiene el mismo nivel de sangrado. Por ejemplo: Estos programas muestran x en pantalla e incrementan su valor en 1 siempre que x sea menor que y . Es así, ¿no?
  49. 49. Estructuras de control De cero a Python en 45' Ejecucion condicional: if condición : » acciones elif condición : » acciones else : » acciones Las clausulas elif y else son opcionales. Pueden usarse múltiples elif .
  50. 50. Estructuras de control De cero a Python en 45' Ciclo hacer mientras: while condición : » acciones Funciona de modo similar al while de cualquier otro lenguaje. Repetirá las acciones del bloque mientras la condición sea verdadera. a = 1 while a < 10: print a a = a + 3 1 4 7
  51. 51. Estructuras de control De cero a Python en 45' Ciclo para: for elemento in secuencia : » acciones Python exige una secuencia de la que se irán sacando los valores para elemento . Puede ser una lista, una tupla o cualquier objeto iterador (no se preocupen, es mas fácil de lo que suena). zoologico = [“leon”, “tigre”, “mono”] for animal in zoologico : print “vi un ” + animal vi un leon vi un tigre vi un mono
  52. 52. Estructuras de control De cero a Python en 45' Para usar for con rangos númericos basta con crear una secuencia con el rango deseado. Para eso podemos usar la función range( [desde] , hasta, [paso] ) print range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print range(5, 10) [5, 6, 7, 8, 9] print range(0, 10, 2) [0, 2, 4, 6, 8] La función xrange() tiene un comportamiento similar, solo que no devuelve una lista con los numero incluidos sino que devuelve un objeto iterador, esta es una solución mas eficiente y debería ser usada siempre que se pueda.
  53. 53. Estructuras de control De cero a Python en 45' Manejo de ecepciones: try: » acciones a intentar except TIPOError : » acciones en caso de error else: » acciones si no hubo error El manejo de excepciones son de gran utilidad si es que necesitamos realizar operaciones que dependen de factores externos y pueden no estar disponibles.
  54. 54. Uso de funciones De cero a Python en 45' Definir una función: Para definir una función se usa la siguiente sintaxis: def nombre( parametro1 , parametro2... ) : » acciones » return resultado No es necesario especificar el tipo de los parámetros La clausula de retun es opcional, si no se usa la función devuelve un resultado vacío ejemplo: def suma( a , b ) : » return a + b
  55. 55. Uso de funciones De cero a Python en 45' Una función puede no necesitar parámetros. Por ejemplo: def saludar() : » print “Hola amigo, bienvenido!” También es posible darle a los parámetros un valor por defecto, el valor que usaran si no es especificado al llamarse la función. Por ejemplo: def saludar(nombre= ”amigo” ) : » print “Hola ” + nombre + “, bienvenido!” saludar( “Pedro” ) Hola Pedro, bienvenido! saludar() Hola amigo, bienvenido!
  56. 56. Programación Orientada a Objetos De cero a Python en 45' Repito: en Python TODO es un objeto! <ul><ul><ul><li>Una variable es un objeto
  57. 57. Un entero es un objeto
  58. 58. Una cadena es un objeto
  59. 59. Una lista es un objeto
  60. 60. Una función es un objeto
  61. 61. Una clase también es un objeto
  62. 62. Y si, los atributos de un objeto también son objetos...
  63. 63. Y también los métodos
  64. 64. Adivinaron, un error también es un objeto </li></ul></ul></ul>Como pueden ver, estaremos de objetos hasta el cuello. Así que no es mala idea repasar algunos conceptos.
  65. 65. Programación Orientada a Objetos De cero a Python en 45' Clase: Son los “tipos de objeto”. Objeto: Son entidades que combinan estado , comportamiento e identidad . Es análogo a un objeto cualquiera en el mundo real. Si la clase es perro, un objeto es “Kevin” (el pastor alemán de mi tía). Otro objeto podría ser “Terry” (el Terrier de mi suegra) o “Candy” (la perrita que adoptó mi novia). Todas estas mascotas son de la misma especie, son perros. Todos serian objetos (instancias) de la misma clase “Perro”. ¿Porque es útil trabajar con objetos?, de eso nos iremos dando cuenta mientras aprendemos a usarlos.
  66. 66. Programación Orientada a Objetos De cero a Python en 45' Definir una clase: class nombre : def metodo1 ( self, parametro1 , parametro2 , ...) : acciones return def metodo2 ( self, parametro1 , parametro2 , ...) : acciones return Los métodos dentro de una clase se definen de igual forma que se definen las funciones, solo que deben estar listos para recibir, como primer parámetro, una auto-referencia.
  67. 67. Programación Orientada a Objetos De cero a Python en 45' Va un ejemplo de una pequeña clase: class perro : def ladrar ( self, cantidad) : print cantidad * “guau! ” Para probar nuestro ejemplo debemos instanciar la clase perro. Para eso solo debemos llamar a la clase. kevin = perro() Hemos creado una instancia de perro y la llamamos Kevin .
  68. 68. Programación Orientada a Objetos De cero a Python en 45' Para ejecutar un método de un objeto solo debemos llamarlo del modo habitual: objeto.metodo( parametro1 , parametro2 , ...) Siguiendo con el ejemplo de nuestro perro bastará conque escribamos así: kevin.ladrar(5) guau! guau! guau! guau! guau! Omitimos el parámetro self , porque es redundante decirle a un perro que ladre como él mismo... (además nos veríamos un poco estúpidos haciéndolo)
  69. 69. Programación Orientada a Objetos De cero a Python en 45' Definir los atributos: Como Python es totalmente dinámico, podemos definir los atributos de un objeto en cualquier momento. Solo necesitamos asignar un valor a self.atributo, por ejemplo: class perro : def correr ( self) : self.estado = “Cansado” def descansar ( self) : self.estado = “Descansado”
  70. 70. Programación Orientada a Objetos De cero a Python en 45' Para poder ver el valor de un atributo basta con escribir su nombre completo. Es decir, objeto.atributo , por ejemplo: kevin = perro() kevin.correr() kevin.estado 'Cansado' kevin.descansar() kevin.self.estado 'Descansado'
  71. 71. Programación Orientada a Objetos De cero a Python en 45' Método constructor: Para preparar el objeto a ser usado y asegurarnos de que su comportamiento sea predecible es conveniente definir los atributos apenas el objeto es instanciado. Eso se puede hacer asignando los valores en el método especial “ __init__ ”. Por ejemplo: class perro : def __init__(self, nombre , raza , altura ) : self.nombre = nombre self.raza = raza self.altura = altura
  72. 72. Programación Orientada a Objetos De cero a Python en 45' Visto lo básico sobre la creación de clases e instanciación de de objetos quizás queramos empezar a trabajar con ellos. Para explorarlos y conocer sus propiedades podemos usar estas funciones implícitas: <ul><ul><ul><li>dir( objeto ) : Nos devuelve una lista de todos los métodos y atributos de objeto .
  73. 73. help( objeto ) : Nos muestra toda la información disponible del objeto, incluyendo la documentación intrínseca.
  74. 74. isinstance( objeto, clase ) : Permite saber si un objeto en particular es o no instancia de determinada clase. </li></ul></ul></ul>
  75. 75. Modulos De cero a Python en 45' La reutilización de código y la extensibilidad del lenguaje fueron una de las premisas más importantes a la hora de diseñar el lenguaje. Python instala, por defecto, una completisima colección de bibliotecas estandar. Su lema es “Viene con las pilas incluidas”.
  76. 76. Modulos De cero a Python en 45' Importar y usar un modulo es tan facil como: import os os.system ( “cal” ) Noviembre 2008 lu ma mi ju vi sá do 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
  77. 77. Les toca a ustedes... De cero a Python en 45' ¿Preguntas?
  78. 78. The end De cero a Python en 45' ¡Muchas gracias! ¡Muchas gracias!

×