http://www.eqsoft.net                 CURSO PYTHON
                    informes@eqsoft.net
                               ...
http://www.eqsoft.net                CURSO PYTHON
                    informes@eqsoft.net
                                ...
http://www.eqsoft.net                  CURSO PYTHON
                     informes@eqsoft.net
                             ...
http://www.eqsoft.net                   CURSO PYTHON
                    informes@eqsoft.net
                             ...
http://www.eqsoft.net                CURSO PYTHON
                    informes@eqsoft.net
                                ...
http://www.eqsoft.net                       CURSO PYTHON
                       informes@eqsoft.net
                      ...
http://www.eqsoft.net                   CURSO PYTHON
                     informes@eqsoft.net
                            ...
http://www.eqsoft.net                  CURSO PYTHON
                    informes@eqsoft.net
                              ...
http://www.eqsoft.net            CURSO PYTHON
                          informes@eqsoft.net
                              ...
http://www.eqsoft.net                    CURSO PYTHON
                      informes@eqsoft.net
                          ...
http://www.eqsoft.net                CURSO PYTHON
                      informes@eqsoft.net
                              ...
http://www.eqsoft.net                 CURSO PYTHON
                     informes@eqsoft.net
                              ...
http://www.eqsoft.net             CURSO PYTHON
                        informes@eqsoft.net
                               ...
http://www.eqsoft.net                CURSO PYTHON
                      informes@eqsoft.net
                              ...
http://www.eqsoft.net                CURSO PYTHON
                     informes@eqsoft.net
                               ...
http://www.eqsoft.net                            CURSO PYTHON
                          informes@eqsoft.net
              ...
http://www.eqsoft.net                                 CURSO PYTHON
                           informes@eqsoft.net
        ...
http://www.eqsoft.net                  CURSO PYTHON
                          informes@eqsoft.net
                        ...
http://www.eqsoft.net                     CURSO PYTHON
                      informes@eqsoft.net
                         ...
http://www.eqsoft.net                         CURSO PYTHON
                       informes@eqsoft.net
                    ...
http://www.eqsoft.net               CURSO PYTHON
                       informes@eqsoft.net
                              ...
http://www.eqsoft.net    CURSO PYTHON
                      informes@eqsoft.net
                                          ...
http://www.eqsoft.net    CURSO PYTHON
                     informes@eqsoft.net
                                           ...
http://www.eqsoft.net    CURSO PYTHON
                    informes@eqsoft.net
                                            ...
http://www.eqsoft.net                     CURSO PYTHON
                       informes@eqsoft.net
                        ...
http://www.eqsoft.net                      CURSO PYTHON
                      informes@eqsoft.net
                        ...
http://www.eqsoft.net                CURSO PYTHON
                       informes@eqsoft.net
                             ...
http://www.eqsoft.net                CURSO PYTHON
                     informes@eqsoft.net
                               ...
http://www.eqsoft.net                             CURSO PYTHON
                         informes@eqsoft.net
              ...
http://www.eqsoft.net                             CURSO PYTHON
                         informes@eqsoft.net
              ...
http://www.eqsoft.net                          CURSO PYTHON
                        informes@eqsoft.net
                  ...
http://www.eqsoft.net                           CURSO PYTHON
                               informes@eqsoft.net
          ...
http://www.eqsoft.net       CURSO PYTHON
                    informes@eqsoft.net
                                         ...
http://www.eqsoft.net                CURSO PYTHON
                    informes@eqsoft.net
                                ...
http://www.eqsoft.net       CURSO PYTHON
                    informes@eqsoft.net
                                         ...
http://www.eqsoft.net                  CURSO PYTHON
                    informes@eqsoft.net
                              ...
http://www.eqsoft.net                     CURSO PYTHON
                      informes@eqsoft.net
                         ...
http://www.eqsoft.net                   CURSO PYTHON
                    informes@eqsoft.net
                             ...
http://www.eqsoft.net              CURSO PYTHON
                       informes@eqsoft.net
                               ...
http://www.eqsoft.net                CURSO PYTHON
                      informes@eqsoft.net
                              ...
http://www.eqsoft.net                CURSO PYTHON
                     informes@eqsoft.net
                               ...
http://www.eqsoft.net                       CURSO PYTHON
                       informes@eqsoft.net
                      ...
http://www.eqsoft.net              CURSO PYTHON
                     informes@eqsoft.net
                                 ...
http://www.eqsoft.net                      CURSO PYTHON
                      informes@eqsoft.net
                        ...
http://www.eqsoft.net              CURSO PYTHON
                     informes@eqsoft.net
                                 ...
http://www.eqsoft.net                                  CURSO PYTHON
                           informes@eqsoft.net
       ...
http://www.eqsoft.net                CURSO PYTHON
                      informes@eqsoft.net
                              ...
http://www.eqsoft.net                    CURSO PYTHON
                      informes@eqsoft.net
                          ...
http://www.eqsoft.net                   CURSO PYTHON
                     informes@eqsoft.net
                            ...
http://www.eqsoft.net                                CURSO PYTHON
                          informes@eqsoft.net
          ...
http://www.eqsoft.net                      CURSO PYTHON
                           informes@eqsoft.net
                   ...
http://www.eqsoft.net                    CURSO PYTHON
                      informes@eqsoft.net
                          ...
http://www.eqsoft.net                    CURSO PYTHON
                           informes@eqsoft.net
                     ...
http://www.eqsoft.net                        CURSO PYTHON
                            informes@eqsoft.net
                ...
http://www.eqsoft.net                           CURSO PYTHON
                              informes@eqsoft.net
           ...
http://www.eqsoft.net                                  CURSO PYTHON
                                   informes@eqsoft.net...
http://www.eqsoft.net                                  CURSO PYTHON
                                informes@eqsoft.net
  ...
http://www.eqsoft.net                                 CURSO PYTHON
                                  informes@eqsoft.net
 ...
http://www.eqsoft.net                            CURSO PYTHON
                               informes@eqsoft.net
         ...
http://www.eqsoft.net                                 CURSO PYTHON
                                  informes@eqsoft.net
 ...
http://www.eqsoft.net                      CURSO PYTHON
                                 informes@eqsoft.net
             ...
http://www.eqsoft.net                      CURSO PYTHON
                         informes@eqsoft.net
                     ...
http://www.eqsoft.net                       CURSO PYTHON
                         informes@eqsoft.net
                    ...
http://www.eqsoft.net                        CURSO PYTHON
                                informes@eqsoft.net
            ...
http://www.eqsoft.net                CURSO PYTHON
                               informes@eqsoft.net
                     ...
http://www.eqsoft.net                             CURSO PYTHON
                                informes@eqsoft.net
       ...
http://www.eqsoft.net                 CURSO PYTHON
                      informes@eqsoft.net
                             ...
http://www.eqsoft.net                    CURSO PYTHON
                        informes@eqsoft.net
                        ...
http://www.eqsoft.net                                 CURSO PYTHON
                           informes@eqsoft.net
        ...
http://www.eqsoft.net                                  CURSO PYTHON
                           informes@eqsoft.net
       ...
http://www.eqsoft.net                        CURSO PYTHON
                      informes@eqsoft.net
                      ...
http://www.eqsoft.net                         CURSO PYTHON
                        informes@eqsoft.net
                   ...
http://www.eqsoft.net                      CURSO PYTHON
                         informes@eqsoft.net
                     ...
http://www.eqsoft.net                           CURSO PYTHON
                        informes@eqsoft.net
                 ...
http://www.eqsoft.net                        CURSO PYTHON
                       informes@eqsoft.net
                     ...
http://www.eqsoft.net                           CURSO PYTHON
                       informes@eqsoft.net
                  ...
http://www.eqsoft.net                       CURSO PYTHON
                      informes@eqsoft.net
                       ...
http://www.eqsoft.net                     CURSO PYTHON
                      informes@eqsoft.net
                         ...
Upcoming SlideShare
Loading in...5
×

Curso python

7,348

Published on

Diapositivas de un curso introductorio a programar en Python

Published in: Education
1 Comment
9 Likes
Statistics
Notes
  • Hola estoy comenzando con el postgres y necesito mucha ayuda
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
7,348
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
136
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

Curso python

  1. 1. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL Día 1:    1. Instalando Python (en Linux)    2. El entorno de consola    3. Variables y constantes Día 2:    4. Trabajo con tipos de datos    5. Trabajo con cadenas    6. Estructuras de control Día 3:    7. Manejos de errores    8. Funciones Día 4:    9. Objetos    10. Conexiones a base de datos, Objetos de Mysql y Pgsql Día 5:    11. Librería de sistema operativo y tiempo    12. Creando librerías y parámetros entre scripts    
  2. 2. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 1. Instalando Python (en Linux) Python en Linux es muy fácil de instalar, de echo es prácticamente la  base de tantas herramientas de software libre que generalmente ya viene  por defecto. Porque los programadores prefieren usar Python? a. Te obliga a programar mas limpio que lenguajes como PHP b. Su engine es mas ligero que el de PHP o Java c. Es multiplataforma d. Soporte para programar scripts, gui apps y web apps e. Altamente escalable f. Es SIMPLE    
  3. 3. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 1. Instalando Python (en Linux) Plataformas RPM (redhat, centOS, Fedora) yum install python Plataformas DEB (Debian, Knoppix, Ubuntu en todas sus variantes) apt­get  install python OjO: van a encontrar varias ramas de Python como la 2.4, 2.5, 2.6, 2.8, 3.0;  la rama 2.x es la mas usada y con mayor desarrollo por el momento, la 3.0  podría no tener todo lo que necesitas.    
  4. 4. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 1. Instalando Python (en Linux) Instalar Python con los comandos anteriormente mencionados solo  instala el “engine” base, python cuenta con una gran variedad de librerías  para diferentes funciones y cada una de estas con sus propias  dependencias, por ejemplo: Si deseamos instalar las librerías de conexión a PostgreSQL debemos  primero instalar python, luego instalar una de las librerías de conexión a  Postgresql como esto : apt­get install python­pgsql Esto instalará primero el cliente de C de Postgresql y todas sus  dependencias y luego al final la librería python­pgsql.    
  5. 5. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 1. Instalando Python (en Linux) Luego de instalado al ejecutar “python” en la consola tenemos algo como  esto :    
  6. 6. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 2. El entorno de la consola El entorno de la consola nos permite “aprender” Python de una manera  mas sencilla, se puede probar funcionalidades sencillas y sintaxis del  lenguaje. Comandos básicos: print “hola mundo”    <­­ imprime algo en la consola A = 22                          <­­ crea la variable “A” print A                         <­­ imprime el valor almacenado en la variable “A” b=input(“dame #:”)    <­­ solicita en la consola ingresar un valor y lo                                           guarda en la variable “b” Se puede hacer mas?    
  7. 7. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 2. El entorno de la consola (Los ... significan un “tab”)   a=3   if  a < 3:   ...print “es menor que 3”   else:   ...print “es mayor o igual que 3” presionar 2 veces “enter” en la ultima linea y la consola soltara este  mensaje: es mayor o igual que 3 Escribir sentencias complejas en la consola es complicado, un error de  sintaxis hace volver a escribir toda la sentencia, esto es muy incómodo.    
  8. 8. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 2. El entorno de la consola Para programar en Python es mejor utilizar un editor de texto cualquiera o  alguno especializado en este lenguaje, grabar el programa como un  archivo de extensión “.py” (no obligatorio) y luego ejecutarlos así: python holamundo.py El resultado lo veremos en la consola del sistema operativo.    
  9. 9. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 3. Variables y constantes Python maneja varios tipos de datos, el tipo corresponde al tipo de dato  con el cual se inicializa la variable. Tipos soportados: Cadenas (strings) Enteros Punto Flotante Boolean Comparar los resultados: A=10                               A=10.0 print A/3                         print A/3    
  10. 10. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 3. Variables y constantes Existe un tipo “null” que en Python se conoce como “none”. G=None if G is None: ..print “G es nulo” else: ...print “G tiene algo: La respuesta es : G es Nulo Los tipos boolean se asignan así: a=True                 <­­­­tome en cuenta la primera letra en mayúscula b=False    
  11. 11. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 3. Variables y constantes Arreglos. En Python el concepto de Arreglo es mucho mas especializado. * La “lista”, es un conjunto de datos ingresados en una estructura única,  no necesitan ser del mismo tipo (el índice empieza en 0): A=[1,4,6,'apesol'] for valor in A: ...print valor El resultado es : Elemento 0: 1 Elemento 1: 4 Elemento 2: 6 Elemento 3: apesol     Practica : escribir “print A[­3]”
  12. 12. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 3. Variables y constantes Arreglos. * La “lista”, incorpora el método “insert” para añadir mas elementos, el  método “append” añade un valor adicional inmediatamente al final de la  lista y el comando “del” elimina elementos de la lista de una posición  determinada. A.insert(4,'chicha') del A[2]    
  13. 13. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 3. Variables y constantes Arreglos. * Las “tuplas”, son conjuntos de datos como en una lista pero es  inmutable, no se puede añadir o borrar elementos. A='a',2,'c',4 for valor in A: ...print valor Los elementos entre paréntesis denotan una tupla dentro de otra, este  principio se cumple en la “lista”. A='a',2,'c',4,('e',6) for valor in A: ...print valor    
  14. 14. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 3. Variables y constantes Arreglos. * Los “diccionarios” son como los arreglos tradicionales, tienen un índice  y un valor como parte de su estructura, se puede añadir y quitar datos. Arreglo={'a':123,'b':'hola mundo',3:122} print Arreglo['b'] ahora veamos que obtenemos con esto: for c in Arreglo: ...print c Y ahora así: for c in Arreglo: ...print Arreglo[c]    
  15. 15. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 3. Variables y constantes Arreglos. ­ La función “len()” permite obtener la cantidad de elementos dentro de  una lista, tupla o diccionario. ­ El comando “del” permite eliminar un elemento en el diccionario  haciendo mención al mismo y su índice. ­ Para insertar un elemento en un arreglo simplemente haga mención del  mismo y coloque un nuevo nombre de índice (numero o texto) ­ Podemos crear listas de diccionarios: a=({1:12,2:13},{1:21,2:23}) for c in a: ...print c ...for d in c: ......print c[d]    
  16. 16. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 4. Trabajo con Tipos de Datos * Type, permite ver el tipo de datos de una variable x=10                 x=122332423423434     x='abc' type(x)             type(x)                           type(x) x=10.0              x=None                         x=(1,2,3)              x={1:10,2:20,3:30} type(x)             type(x)                          type(x)                 type(x) * Int y float, convierte un float a un entero y de entero a float, puede  usarse con cadenas de texto pero que no tengan literales x=10.0                                     x=10 print x/3                                 print x/3 print int(x)/3                          print float(x)/3 * Operadores  +=, ­=, *=,  /= para suma, resta, multiplicación y división    rápida con el valor ya almacenado  
  17. 17. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 4. Trabajo con Tipos de Datos * %, el modulo en las divisiones enteras * //, para la división entera print 9 % 2   print 9 // 2 * str, transforma cualquier objeto/variable a cadena de caracteres x=12 print str(x)+'<­­el numero' * bool, permite transformar una variable a booleano, no muy práctico. X=12                      x=0                             x='abc'                 x=''           x=None print bool(x)         print bool(x)              print bool(x)        print(x)     print(x)    
  18. 18. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 5. Trabajo con Cadenas El manejo de cadenas en Python es bastante avanzado y no requiere  funciones externas. Concatenar:    a='hola'                                  a='aaa' b='mundo'                             a+='bbb' print a+' '+b                          print a Subcadena (el indice siempre empieza en 0): a='hola mundo'       print a[3]            <­­ un dígito print a[5:10]       <­ una sección de cadena, como “substr”     print a[5:]           <­ desde la posición 5 hasta el final de la cadena
  19. 19. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 5. Trabajo con Cadenas Subcadena (el indice siempre empieza en 0): a='hola mundo'       print a[:5]             <­­ corta desde el inicio hasta la posición 5 print a[:­5]            <­­ corta los últimos 5 caracteres de la cadena print a[2:­5]          <­­ corta desde la posición 2 hasta los 5 últimos                                    caracteres de una cadena Una manera de armar cadenas formateadas es así: X=12 Y=11 A=”el  valor de X es: %d y de Y es:%d” % (X,Y) print A Len, retorna la cantidad de caracteres de una cadena    
  20. 20. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 5. Trabajo con Cadenas Una cadena es un objeto que tiene varios métodos asociados a ella  misma tales como : x = 'Hola, MunDO' x.title()                             <­­­ primera letra de cada palabra en mayúscula x.upper()                         <­­­ toda la cadena en mayúscula x.lower()                          <­­­ toda la cadena en minúsculas x.capitalize()                   <­­­ primera letra de la cadena en mayúscula x.count('a')                      <­­­ cuenta la cantidad de 'a' en la cadena x.find('a,')                        <­­­ ubica la posición de la cadena del texto                                                ingresado x.replace('a','4')               <­­­ reemplaza las 'a' por '4' x.split(x)                          <­­­ corta la cadena en una lista, cada palabra                                                 es un elemento de la lista    
  21. 21. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 5. Trabajo con Cadenas Caracteres especiales como comillas y dobles comillas deben usar el  caracter “” por delante. a=”y San Martin dijo ”Viva el Peru”” print a Para repetir cadenas, multipliquela por la cantidad de veces requerida A='cuy'*5 print A No se puede cambiar el valor de un caracter de una cadena A=”cuy” A[2]='i'     <­­­ da un error    
  22. 22. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 6. Estructuras de Control Operadores de comparacion: ==   <­­­ igual <>   <­­­ diferente Operadores logicos: and or not A=1 B=1 if not a <> b: ...print “A no es diferente de B”    
  23. 23. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 6. Estructuras de Control IF if a == b: ...print “a y b son iguales” elif a > b: ...print “a es mayor que b” else ...print “a y b son diferentes”    
  24. 24. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 6. Estructuras de Control WHILE X=10 Y=0 while Y < X: ...Y += 1 ...print Y    
  25. 25. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 6. Estructuras de Control FOR, tiene muchas formas de usarse En un rango de números : for a in range(1,10):       <­­­ejecuta del 1 al 9 ...print a for a in range(10):        <­­­ejecuta del 0 al 9 ...print a En una lista de valores: for a in (1,10,5,7):        <­­­­ puede ser una tupla o un diccionario ..print a    
  26. 26. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 6. Estructuras de Control FOR, tiene muchas formas de usarse En un rango de números : for a in range(1,10,2):       <­­­ejecuta del 1 al 9 saltando de 2 en 2 ...print a for a in range(10,1,­3):        <­­­ejecuta del 10 al 1 saltando de 3 en 3 ...print a for a,b in ((1,4),(2,5),(3,6)):    <­­­ solo se acepta valores numéricos enteros ...print a ...print b    
  27. 27. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 6. Estructuras de Control Break, permite salir de un loop for c in range(1,10):        <­­­ ejecuta del 1 al 6 ...print c ...if c > 5: ......break Continue, permite volver a iterar sin ejecutar el código que continua en el  loop for c in range(1,10):        <­­­ ejecuta del 1 al 5 ...if c > 5: ......continue ...print c    
  28. 28. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 7. Manejo de errores El comando “try” permite capturar la posibilidad de que se procese un  error en la ejecución del siguiente comando para que el Python no nos  bote del programa. try: ...a='abc'+123 except: ...print “hay un error” El “except” responde a diferentes valores dependiendo el comando a  ejecutar, por ejemplo las librerías de PostgreSQL tienen diferentes  “except” dependiendo el tipo de error.    
  29. 29. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 7. Manejo de errores try: ...a='abc'+123 except: ...pass                                          <­­­ “pass” no hace nada print “se comio el error” Esta sentencia da error el código debe continuar debajo del nivel del “try” try: ...a='abc'+123 ...print “aqui debe continuar el programa” except: ...pass                                              
  30. 30. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 7. Manejo de errores try: ...a='abc'+123 except: ...pass                                          <­­­ “pass” no hace nada print “se comio el error” Esta sentencia da error el código debe continuar debajo del nivel del “try”  en el editor de consola, ejecutando un archivo “.py” no sucede error y se  continua con la ejecución del programa. try: ...a='abc'+123 ...print “aqui debe continuar el programa si estoy en consola” except: ...pass                                              
  31. 31. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 7. Manejo de errores try: ...a='abc'+123 except: ...raise  ('mensajito')    <­­­ permite ver todo el traceback del error                                             corta el programa y permite enviar un mensaje                                             final personalizado Existen varios tipos de “except” para el uso común del lenguaje estos son  los mas conocidos: except RuntimeError: print “error en el sistema” except TypeError: print “error de tipo de datos, como el que estamos generando” except NameError:   print “cuando se usa un nombre de variable/objeto que no existe”  
  32. 32. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 7. Manejo de errores Ejemplo para explicar: import sys                                                                <­­ importa una librería try:     f = open('myfile.txt')     s = f.readline()     i = int(s.strip()) except IOError as err:                                             <­­ tipo de except especial de la     print("I/O error: {0}".format(err))                             libreria sys si no Open(myfile.txt”)  except ValueError:                                                  <­­ se ejecuta cuando int() no puede          print("Could not convert data to an integer.")      convertir el valor a entero except:                                                                     <­­ error generico     print("Unexpected error:", sys.exc_info()[0])     raise    
  33. 33. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) def mi_funcion (mi_parametro): ...sentencias Ejemplo: def mi_raizcuadrada( pNumero): ...return (pNumero * pNumero) print mi_raizcuadrada(4) print mi_raizcuadrada(mi_raizcuadrada(4))    
  34. 34. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) Para asignar valores por defecto a los parametros: def mi_raizcuadrada( pNumero=9): ...return (pNumero * pNumero) print mi_raizcuadrada(4) print mi_raizcuadrada()    
  35. 35. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) def mi_funcion (mi_parametro): ...sentencias Ejemplo: def mi_raizcuadrada( pNumero): ...return (pNumero * pNumero) print mi_raizcuadrada(4) print mi_raizcuadrada(mi_raizcuadrada(4))    
  36. 36. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) Es posible invocar solo ciertos parámetros de una función def mifuncion (a=1, b=2): ...return a+b print mifuncion(2,3) print mifuncion() print mifuncion(b=3) Pero si los valores no invocados explícitamente no tiene valor por defecto  el Python devolverá un error.    
  37. 37. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) Es posible pasar mas parámetros de los esperados que se reciben en una  lista o en un diccionario def mifuncion( parametro, *arguments, **keywords): print parametro for parametrosadicionales in arguments: print “valor:”+parametrosadicionales for indice in keywords: print “indice:”+indice print “valor:”+keywords[indice] return mifuncion('a','b','c','d', uno='uno', dos=2, tres='tres')   OjO no se puede usar de indice un número  
  38. 38. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) Las funciones pueden tener funciones anidadas def anidado1(argumento1): ...def anidado2(argumento2): ......return argumento1 +argumento2 ...return anidado2 ... f = anidado1(5)  <­­­ en este momento no opera nada, solo genera una  f(3)                             función en memoria f(4) d = anidado2(6)      <­­ esto da error print anidado1(5)   <­­ esto da un mensaje de sistema    
  39. 39. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) Los parámetros en la función solo están activos dentro de la misma  función, lo declarado fuera de la función puede ser invocado como  “global” y modificado si fuera necesario. A=6 def valor(): ..global A ..print “el valor es : “ + str(A) ..A += 10 ..return valor() print “el valor es:” + str(A)    
  40. 40. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) Las funciones pueden simular retornar varios valores def mifuncion(a,b): return a * 2, b  * 3 c ,d = mifuncion(4,5) print c print d    
  41. 41. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 8. Funciones (Usar editor de texto) Los parámetros vistos hasta el momento son por “referencia”, solo  algunos tipos de datos pueden ser pasados por “valor”, por ejemplo el  integer o el float son inmutables, pero las listas no. def mifuncion( inmutable,mutable): inmutable = inmutable + 1 mutable.append(inmutable) a=15 b=[15] mifuncion(a,b) print a print b    
  42. 42. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos En su forma mas básica podemos declarar clases en Python de esta  forma: class MiClase: ...atributo1=123 ...atributo2='abc' ...def metodo1(self): ......print “atributo : “ + str(self.atributo1) + “ “ + self.atributo2 obj=MiClase() obj.metodo1() “self” es una palabra reservada y es un equivalente a “this” en otros  lenguajes.    
  43. 43. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos En su forma mas básica podemos declarar clases en Python de esta  forma: class MiClase: ...atributo1=123 ...atributo2='abc' ...def metodo2(self, valor): ......print atributo1+valor obj=MiClase() obj.metodo2(4)    
  44. 44. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Constructor de clases usar “__init__” class MiClase2: ...atributo1 = 12 ...atributo3 = [1,'b',3] ...def __init__(self, parametro1, parametro2):  <­­”self” se debe declarar en ......if parametro1 <> None:                                     todos los métodos .........self.atributo1 = parametro1 ......self.atributo2 = parametro2 obj=MiClase2(None,2) print obj.atributo1 print obj.atributo2 print obj.atributo3 obj2=MiClase2(44,2)   print obj2.atributo1  
  45. 45. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Para algunos casos especiales podemos desear convertir un objeto  entero a una cadena de caracteres, esto se hacer con “__str__” class MiClase: ...def __str__(self) ......return “me converti en cadena” obj=MiClase() print obj También es posible implementar el método “__repr__” para obtener un  efecto similar pero con un texto formateado.    
  46. 46. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Los objetos en Python permiten crear mas atributos de los definidos en la  clase, de manera indiscriminada lastimosamente: obj=MiClase() obj.atributoquenoexiste = 1 print obj.atributoquenoexiste Sin embargo podemos setear que esto no suceda con el método  “__setattr__” class miClase: ...atributo1 = 123 ...def __setattr__(self,nombre, valor): ......print “no me puedes cambiar, el parametro anadido es:” + nombre + “ y el valor es:” + repr(valor) obj=miClase()     obj.atributoquenoexiste = 1
  47. 47. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Para el caso de que deseemos advertir sobre el hacer “get” a un atributo  que no existe usamos el método “__getattr__” class miClase5: ...atributo1 = 123 ...def __getattr__(self,name): ......print "lo siento, no existe atributo: " + name obj = miClase5() print “valor:” + obj.atributo12    
  48. 48. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Para borrar atributos añadidos al objetos usar “del”: class miClase5: ...atributo1 = 123 ...def __getattr__(self,name): ......print "lo siento no existe tributo : " + name obj = miClase5() obj.atributo12=1234 print "voy a borrar el atributo con el valor:" + str(obj.atributo12) del obj.atributo12 x = obj.atributo12    
  49. 49. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Para evitar que se borren atributos añadidos al objeto class miClase5: ...atributo1 = 123 ..def __delattr__(self,name): ......print "no se puede borrar a tributo: "+ name obj = miClase5() obj.atributo12=1 print "voy a borrar:" + str(obj.atributo12) del obj.atributo12 print “sigo aqui: “ + str(obj.atributo12)    
  50. 50. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Para declarar “set” y “get” a los atributos se debe operar como en este  ejemplo. class miClase6(object): ...def __init__(self):                       ......self.__valor = 12                                <­­­ aquí acabo de declarar un atributo ...def getValor(self):                                       privado al usar “__” delante del nombre ......print "Leyendo numero del get" .....return self.__valor ...def setValor(self, valor): ......print "Grabando el valor en el set" ......self.__valor = valor ...valor = property(getValor,setValor) obj = miClase6() print obj.valor obj.valor=8   print obj.valor   print obj__valor    <­­­ va a dar un error
  51. 51. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 9. Objetos Herencia, para declararla hay que decir que la clase implementa otra clase. class Uno: ...numero1 = 1 ...def imprime1(self): ......print "estoy en la clase 1" class Dos(Uno): ...numero2 = 2 ...def imprime2(self): ......print "estoy en la clase 2" ......Uno.imprime1(self) ...def imprime3(self): ......print "estoy en la clase 2, no invoco nada de la clase 1" a = Dos() a.imprime2() a.imprime1() a.imprime3() print a.numero1     print a.numero2
  52. 52. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos Para conectarse a las bases de datos Python utiliza diversas librerías  especializadas para ello, es común que incluso para una misma base de datos  exista mas de una alternativa de librería como en el caso de MySQL. Usaremos en estas distribuciones desde repositorios: centOS: MySQL­python Ubuntu: python­mysqldb http://www.mikusa.com/python­mysql­docs/ centOS: postgresql­python Ubuntu: python­pgsql http://www.pygresql.org/pg.html En ambos casos son las mismas pero se llaman diferente los paquetes  dependiendo la distribución de Linux que se use    
  53. 53. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb try: dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') except MySQLdb.Error: print “La clase MySQLdb encontro un error” except: print “no me pude conectar a la db, error desconocido” MySQLdb incluye su propio “except”.    
  54. 54. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb try: dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') except MySQLdb.Error, error: print “error exacto:” print error except: print “no me pude conectar a la db, error desconocido” en este caso “error” es una lista de 2 elementos con el error exacto, el número y el  mensaje    
  55. 55. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') qry=”select * from agentes” cursor=dbMY.cursor()       <­­­ antes de ejecutar un query es necesario declarar un cursor cursor.execute(qry) print cursor                        <­­­ esto solo nos devuelve la dirección de memoria del cursos setdata = cursor.fetchall() <­­­ bajamos la data del cursor a un contenedor de los datos,                                                     es una lista de listas print setdata    
  56. 56. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') qry=”select * from agentes” cursor=dbMY.cursor()        cursor.execute(qry) setdata = cursor.fetchall()  for registro in setdata:                                                       <­­­ así podemos obtener la data for campo in registro: print campo print “***************fin registro***************”    
  57. 57. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') qry=”select * from agentesXXXYYY” cursor=dbMY.cursor()        try: cursor.execute(qry) except MySQLdb.Error, error: print “error exacto:” print error except: print “error desconocido en el query” setdata = cursor.fetchall()                                               <­­­ si se da un error esto dará otro  for registro in setdata:                                                           error for campo in registro: print campo   print “***************fin registro***************”  
  58. 58. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') qry=”select * from agentesXXXYYY” cursor=dbMY.cursor()        try: cursor.execute(qry) setdata = cursor.fetchall() otro                                         <­­­ ponerlo aquí es una manera for registro in setdata:                                                             de resolver el problema for campo in registro: print campo print “***************fin registro***************” except MySQLdb.Error, error: print “error exacto:” print error except: print “error desconocido en el query”    
  59. 59. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') qry=”select * from agentes” cursor=dbMY.cursor()        rows=cursor.execute(qry)                           <­­­ esto devuelve la cantidad de registros print “existen %d registros” % rows    
  60. 60. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') qry=”select * from agentes” cursor=dbMY.cursor()        rows=cursor.execute(qry)                            for a in range(1,rows): c = cursor.fetchone()                                                   <­­­ así podemos pedir los registros print c                                                                                  uno por uno print “Fin registro %d ************************” % a    
  61. 61. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos MySQL import MySQLdb dbMY = MySQLdb.connect(host='localhost',user='root',passwd='clave',db='operador') qry=”select * from agentes” cursor=dbMY.cursor()        rows=cursor.execute(qry)                            cursor.close()           <­­­ cerramos el cursor, liberamos memoria dbMY.close()            <­­­­ cerramos la conexión a la db, nunca dejar de hacerlo.    
  62. 62. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos PostgreSQL import pg try:     dbPG = pg.connect(dbname='oeprador',user='usuario',passwd='clave',host='localhost') except TypeError, error:     print "argumentos mal pasado, o demasiado"     print error except SyntaxError, error:     print "argumento duplicado" print error except pg.InternalError, error:     print "se conecto al motor pero este responde negativo a la conexion"     print error En el caso de la librería de PostgreSQL la mayoría de los métodos del objeto incluyen sus    propias excepciones, por ello se hace necesario consultar la documentación, el parámetro    “error” esta recibiendo el mensaje especifico del error.
  63. 63. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos PostgreSQL import pg dbPG = pg.connect(dbname='oeprador',user='usuario',passwd='clave',host='localhost') qry = "insert into tabla values (1,2,3)" try: resultado = dbPG.query(qry) except TypeError,error: print "Query mal formado" print error except pg.ProgrammingError,error: print “Error producido por la data en si y no de formacion de query” print error Existe ademas: ­ ValueError: empty SQL query or lost connection   ­ pg.InternalError: error during query processing  
  64. 64. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos PostgreSQL import pg dbPG = pg.connect(dbname='oeprador',user='usuario',passwd='clave',host='localhost') qry = "select * from tabla" resultado = dbPG.query(qry) setdata = resultado.getresult()          <­­­ esto retorna la data como una tupla print setdata print “**************************” setdata2 = resultado.dictresult()      <­­­ esto retorna la data como un diccionario print setdata    
  65. 65. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos PostgreSQL import pg dbPG = pg.connect(dbname='oeprador',user='usuario',passwd='clave',host='localhost') qry = "select * from tabla" resultado = dbPG.query(qry) setdata = resultado.dictresult()       for c in setdata: for d in c: print d + ":" + str(c[d]) print "**********fin registro"    
  66. 66. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 10. conexiones a Base de datos PostgreSQL Algunas cosas interesantes. qry = "select * from tabla" resultado = dbPG.query(qry) print resultado.listfileds()     <­­­ devuelve los nombres de los campos de la consulta print resultado.ntuples()       <­­­ cantidad de registros que devolvió la consulta dbPG.close()                          <­­­ nunca olvidar cerrar la conexión    
  67. 67. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 11. Librería de sistema operativo y tiempo La librería de sistema operativo nos permite interactuar entre el Python y  el OS directamente. Podemos mandar comandos de consola completos al OS. import os os.system('ls') La salida del comando la podemos ver en la consola al ejecutar el script  pero no podemos capturarla.    
  68. 68. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 11. Librería de sistema operativo y tiempo os.getcwd()      <­­­ retorna en que directorio estoy os.chdir('/var/log')  <­­­ se mueve a otro directorio Desde la consola Python podemos utilizar 2 comandos muy importantes para ver  las funciones que nos ofrece la librería: >>> dir(os)      <­­­­­ muestra los métodos de la librería >>>help(os)   <­­­­­ es una ayuda en linea de la librería    
  69. 69. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 11. Librería de sistema operativo y tiempo La librería de tiempo nos permite trabajar con fechas y horas, para usarla: import time print time.asctime()         <­­ devuelve una cadena con la fecha y hora. print time.ctime()             <­­ sin parámetro devuelve la fecha actual en cadena. print time.ctime(12345)   <­­ especificando una cantidad de segundos devuelve la                                                fecha transcurrida desde el “tiempo local” del 31dic de                                               1969. print time.localtime()       <­­ devuelve la fecha y hora actual en formato numérico                                                  en una lista.  print time.sleep(60)        <­­ suspende la ejecución de un código durante el número                                                de segundos especificado.    
  70. 70. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 11. Librería de sistema operativo y tiempo La librería de tiempo nos permite trabajar con fechas y horas, para usarla: import time x =  time.strptime('2009­08­09','%Y­%m­%M')  <­­­ transforma una cadena a fecha (en print x                                                                         una lista). x =  time.strftime('%Y­%m­%M',x)                    <­­­ transforma una fecha a cadena en print x                                                                         el formato especificado.    
  71. 71. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 11. Librería de sistema operativo y tiempo La librería de tiempo nos permite trabajar con fechas y horas, para usarla: import time segundosX = 0 #obtienel a hora actual en segundos segundos = int(time.time()) print "hora actual:" + time.ctime(segundos) segundosX = segundos + 60 suma=time.ctime(segundosX) print "mas 1 minuto:" + suma segundosX = segundos +  3600 suma=time.ctime(segundosX) print "mas 1 hora:" + suma    
  72. 72. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 11. Librería de sistema operativo y tiempo Existe una librería alterna que es la datetime, esta nos ayuda en operaciones con  fechas. from datetime import date fecha1=date.today()        <­­­ devuelve el día actual fecha2=date(2009,12,4)   <­­­ transforma un YYYY,MM,DD en enteros a fecha x= fecha2 – fecha1         <­­­ la operación entre fechas devuelve un tipo de dato print x                                    “timedelta”, OjO no podemos sumar fecha. print x.days print x.seconds print x.microseconds Solo los 3 tipos de resultados son almacenados, para convertir a hora o minutos    hay que operar con los “days” o los “seconds”  
  73. 73. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 11. Librería de sistema operativo y tiempo Para restar o sumar días: from datetime import date from datetime import datetime hoy = date.today() nuevafecha = hoy + timedelta(365)       <­­­ especificamos los dias print nuevafecha nuevafecha = hoy ­ timedelta(365)        print nuevafecha    
  74. 74. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 12. Creando librerías y parámetros entre scripts Creando tu propia librería Crear un archivo de texto con la extensión “.py” touch mate.py Escribir en este archivo las funciones que se desean programar def suma(a,b): return a+b En el archivo con el código que se desea importar colocar import mate                  <­­­ debe tener el mismo nombre del archivo físico print mate.suma(8,4)   <­­­ especificar el nombre de la librería delante de la                                                     función    
  75. 75. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 12. Creando librerías y parámetros entre scripts Creando tu propia librería La librería puede tener incluidas clases (editar mate.py y añadir)  class clsMate: X = 0 Y = 0 def divide(self) return X/Y En el archivo con el código que se desea importar colocar obj = mate.clsMate() obj.X = 10 obj.Y = 5 print obj.divide()    
  76. 76. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 12. Creando librerías y parámetros entre scripts Creando tu propia librería Se pueden importar solo ciertas funciones o clases de la librería from mate import suma,clsMate print suma(5,7)     <­­­ en este caso ya no es necesario hacer precisión de la  obj = clsMate()            librería obj.X=10 obj.Y=5 print obj.divie() print mate.multiplica(6,9)  <­­­ esto da error porque no se importo print multiplica(6,9)           <­­­ esto da error porque no se importo    
  77. 77. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 12. Creando librerías y parámetros entre scripts Pasando parámetros entre scripts Para pasar parámetros a un script “.py” es necesario hacer uso de la librería “sys”  de la siguiente manera *crear un archivo llamado (parametro.py): import sys if (len(sys.argv) > 1 ):     print sys.argv     for c in sys.argv:         print c En la consola escribir: python parametro.py parametro1 2,tres 'cuatro 4'    
  78. 78. http://www.eqsoft.net  CURSO PYTHON informes@eqsoft.net NIVEL INICIAL 12. Creando librerías y parámetros entre scripts Ejecutando directamente un script en Python Para poder lograr que Linux reconozca directamente que debe usar el interprete de  Python en nuestros scripts es necesario añadir los siguiente en sus scripts: #!/usr/bin/python print “hola mundo” El archivo “.py” debe tener derechos de ejecución: chmod 777 archivo.py para ejecutarlo en el mismo directorio: ./archivo.py    
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×