SlideShare una empresa de Scribd logo
1 de 78
Descargar para leer sin conexión
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
                                       
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



                                       
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.



                                         
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.


                                         
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 :




                                       
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?


                                             
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.
                                           
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.




                                        
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

                                                   
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
                                           
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]”
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]




                                        
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
                                           
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]
                                         
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]
                                        
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  
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)
                                                      
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
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
                                            
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

                                               
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
                                          
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”
                                         
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”




                                        
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




                                       
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



                                             
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



                                            
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
                                              
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.



                                        
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                                          

                                                   
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                                          
                                                   
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”
                                          
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

                                                       
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))




                                           
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()




                                           
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))




                                           
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.



                                           
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
                                       
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



                                           
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)



                                           
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




                                           
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



                                           
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.
                                             
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)




                                        
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                    
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.



                                            
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
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




                                           
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




                                            
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)




                                          
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
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
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

                                           
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”.




                                                
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



                                                   
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




                                                       
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***************”




                                                               
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***************”          
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”
                                                             
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




                                                        
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




                                                             
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.




                                                           
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.
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
                                                 
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



                                                      
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"




                                                  
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




                                                          
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.




                                         
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




                                                
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.
                                                      
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.




                                                       
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
                                             
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”
                                            
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




                                                
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
                                                
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()

                                              
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




                                               
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'

                                             
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

                                               

Más contenido relacionado

La actualidad más candente

Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Fco Javier Lucena
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Ricardo Muñiz
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Nahuel Defossé
 
Programación de Videojuegos con Python y Pilas (I)
Programación de Videojuegos con Python y Pilas (I)Programación de Videojuegos con Python y Pilas (I)
Programación de Videojuegos con Python y Pilas (I)Fernando Salamero
 
Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012Nahuel Defossé
 
Sesión 2: Ejemplos y prácticas en Python
Sesión 2: Ejemplos y prácticas en PythonSesión 2: Ejemplos y prácticas en Python
Sesión 2: Ejemplos y prácticas en Pythonmaluacsa
 
Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Fernando Salamero
 
Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)CAChemE
 
Exposición Python
Exposición PythonExposición Python
Exposición Pythondavidare
 

La actualidad más candente (20)

Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)
 
Introduccion a python 3
Introduccion a python 3Introduccion a python 3
Introduccion a python 3
 
Clase1_Python-CTIC
Clase1_Python-CTICClase1_Python-CTIC
Clase1_Python-CTIC
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012
 
Python (ejercicios)
Python (ejercicios)Python (ejercicios)
Python (ejercicios)
 
Programador Jr. para Python Primera Parte
Programador Jr. para Python Primera ParteProgramador Jr. para Python Primera Parte
Programador Jr. para Python Primera Parte
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Programación de Videojuegos con Python y Pilas (I)
Programación de Videojuegos con Python y Pilas (I)Programación de Videojuegos con Python y Pilas (I)
Programación de Videojuegos con Python y Pilas (I)
 
Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012Clase 4/4 Curso Introducción a Python 2012
Clase 4/4 Curso Introducción a Python 2012
 
Python básico II
Python básico IIPython básico II
Python básico II
 
Sesión 2: Ejemplos y prácticas en Python
Sesión 2: Ejemplos y prácticas en PythonSesión 2: Ejemplos y prácticas en Python
Sesión 2: Ejemplos y prácticas en Python
 
Introduccion a Python. Clase 1
Introduccion a Python. Clase 1Introduccion a Python. Clase 1
Introduccion a Python. Clase 1
 
Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)
 
Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)
 
Exposición Python
Exposición PythonExposición Python
Exposición Python
 
Introduccion a python
Introduccion a pythonIntroduccion a python
Introduccion a python
 
Python 4
Python 4Python 4
Python 4
 
Tutorial de Python
Tutorial de PythonTutorial de Python
Tutorial de Python
 

Similar a Curso python

Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_Jesus22barrera
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++ValeriaBerrones
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfCeth1
 
Investigacion de Python.pptx
Investigacion de Python.pptxInvestigacion de Python.pptx
Investigacion de Python.pptxSelTrejo
 
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 Software para el aprendizaje de la programación EC 2. Presentación 3: Python Software para el aprendizaje de la programación EC 2. Presentación 3: Python
Software para el aprendizaje de la programación EC 2. Presentación 3: PythonUCC_Elearning
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_LaishaXime
 
Estructura basica de_c_(2)
Estructura basica de_c_(2)Estructura basica de_c_(2)
Estructura basica de_c_(2)gadiel1515
 
2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOTDavid Narváez
 
Conociendo los Lenguajes de Programacion
Conociendo los Lenguajes de ProgramacionConociendo los Lenguajes de Programacion
Conociendo los Lenguajes de Programacionsandra gutierrez
 
Python básico
Python básicoPython básico
Python básicoCodeSyntax
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++ernestre
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++ernestre
 

Similar a Curso python (20)

Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdf
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Investigacion de Python.pptx
Investigacion de Python.pptxInvestigacion de Python.pptx
Investigacion de Python.pptx
 
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 Software para el aprendizaje de la programación EC 2. Presentación 3: Python Software para el aprendizaje de la programación EC 2. Presentación 3: Python
Software para el aprendizaje de la programación EC 2. Presentación 3: Python
 
Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_
 
Estructura basica de_c_(2)
Estructura basica de_c_(2)Estructura basica de_c_(2)
Estructura basica de_c_(2)
 
Phyton
PhytonPhyton
Phyton
 
2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT
 
Conociendo los Lenguajes de Programacion
Conociendo los Lenguajes de ProgramacionConociendo los Lenguajes de Programacion
Conociendo los Lenguajes de Programacion
 
Python básico
Python básicoPython básico
Python básico
 
Python101
Python101Python101
Python101
 
PYTHON.pptx
PYTHON.pptxPYTHON.pptx
PYTHON.pptx
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++
 
PROGRAMACIÓN EN C
PROGRAMACIÓN EN CPROGRAMACIÓN EN C
PROGRAMACIÓN EN C
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 

Más de EQ SOFT EIRL

Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19EQ SOFT EIRL
 
Peruanos en Twitter
Peruanos en TwitterPeruanos en Twitter
Peruanos en TwitterEQ SOFT EIRL
 
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia ArtificialRecomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia ArtificialEQ SOFT EIRL
 
Centros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaCentros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaEQ SOFT EIRL
 
EQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agrariaEQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agrariaEQ SOFT EIRL
 
Transformación Digital en Logística
Transformación Digital en LogísticaTransformación Digital en Logística
Transformación Digital en LogísticaEQ SOFT EIRL
 
Propuestas de innovacón financiera
Propuestas de innovacón financieraPropuestas de innovacón financiera
Propuestas de innovacón financieraEQ SOFT EIRL
 
Clusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaClusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaEQ SOFT EIRL
 
Inteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración PúblicaInteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración PúblicaEQ SOFT EIRL
 
Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019EQ SOFT EIRL
 
Platique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBotPlatique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBotEQ SOFT EIRL
 
Logos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to TextLogos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to TextEQ SOFT EIRL
 
Logos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosLogos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosEQ SOFT EIRL
 
Logos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialLogos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialEQ SOFT EIRL
 
Logos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialLogos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialEQ SOFT EIRL
 
Presentación de Logos en el Cade Digital
Presentación de Logos en el Cade DigitalPresentación de Logos en el Cade Digital
Presentación de Logos en el Cade DigitalEQ SOFT EIRL
 
Logos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataLogos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataEQ SOFT EIRL
 
Portafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoftPortafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoftEQ SOFT EIRL
 
Soluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosSoluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosEQ SOFT EIRL
 

Más de EQ SOFT EIRL (20)

Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19
 
Peruanos en Twitter
Peruanos en TwitterPeruanos en Twitter
Peruanos en Twitter
 
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia ArtificialRecomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
 
Centros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaCentros Regionales de Innovación Aplicada
Centros Regionales de Innovación Aplicada
 
EQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agrariaEQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agraria
 
Transformación Digital en Logística
Transformación Digital en LogísticaTransformación Digital en Logística
Transformación Digital en Logística
 
Propuestas de innovacón financiera
Propuestas de innovacón financieraPropuestas de innovacón financiera
Propuestas de innovacón financiera
 
Clusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaClusters Empresariales en Latinoamérica
Clusters Empresariales en Latinoamérica
 
Inteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración PúblicaInteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración Pública
 
Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019
 
Platique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBotPlatique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBot
 
Logos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to TextLogos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to Text
 
Logos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosLogos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de Conocimientos
 
Logos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialLogos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia Artificial
 
Internet of Food
Internet of FoodInternet of Food
Internet of Food
 
Logos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialLogos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia Artificial
 
Presentación de Logos en el Cade Digital
Presentación de Logos en el Cade DigitalPresentación de Logos en el Cade Digital
Presentación de Logos en el Cade Digital
 
Logos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataLogos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big Data
 
Portafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoftPortafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoft
 
Soluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosSoluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesos
 

Último

Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 

Último (20)

TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 

Curso python

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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