SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
Introducción a Python
 Andrés Ignacio Martínez Soto
 anmarso4@fiv.upv.es
 Seminarios Formación Polinux
 València 20 Noviembre 2008




            
NULL: Licencia de ésta presentación
Usted es libre de:
    * copiar, distribuir y comunicar públicamente la obra
    * hacer obras derivadas
    
Bajo las condiciones siguientes:
     Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada 
     por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo 
     o apoyan el uso que hace de su obra).

      No comercial. No puede utilizar esta obra para fines comerciales.
     Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera 
     una obra derivada, sólo puede distribuir la obra generada bajo una licencia 
     idéntica a ésta.
    * Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de 
    la licencia de esta obra.
                                    
Contenido
    1. ¿Qué es Python?



               1.1 ¿Qué es Python?
       


               1.2 ¿Por qué Python?
       


               1.3 Python VS otros
       


               1.4 Instalación
       



    2. Introducción a Python



               2.1 Tipos de datos
       


               2.2 Control de flujo
       


               2.3 Entrada y salida
       


               2.4 Ficheros
       


               2.5 Funciones
       


               2.6 Excepciones
       
                             
Contenido
    3 Módulos y paquetes



               3.1 Módulos y paquetes
       


               3.2 La librería estándar
       



    4 Documentación



               4.1 Libros sobre Python
       


               4.2 Recursos online
       




                               
     
1. ¿Qué es
Python?

       
1.1 ¿Qué es Python? (I)
    Lenguaje de programación 




    Guido van Rossum principios años 90 cuyo 




    Sintaxis muy limpia que favorece un código legible.





    Características



        Lenguaje interpretado
    


        Tipado dinámico y fuerte
    


        Multiplataforma
    


        Orientado a objetos
    




                               
1.1 ¿Qué es Python? (I)
    Lenguaje interpretado:



        Código fuente + intérprete de Python = Programa
    


        Similar a Java:
    


                 El intérprete de Python ”compila” a bytecode el programa
         


         (lenguaje máquina optimizado para una máquina virtual de
           Python )

                      La 1ª vez que ejecutamos un programa éste compila a bytecode para la 
                  


                      máquina virtual de Python.
                      Después se ejecuta el bytecode optimizado generado, así se ejecuta más 
                  


                      rápido.


                                        
1.1 ¿Qué es Python? (II)
    Tipado dinámico



        No es necesario declarar el tipo de dato que va a contener 
    


        una determinada variable, éste se determina en tiempo de 
        ejecución según el valor asignado
    Fuertemente tipado



        No se permite tratar a una variable como si fuera de un 
    


        tipo distinto al que tiene, es necesario convertir de forma 
        explícita el tipo de la variable
        Ejemplo:
        >>> a=quot;Cadenaquot;; b=73; a+b
        Traceback (most recent call last):
         File quot;<stdin>quot;, line 1, in <module>
        TypeError: cannot concatenate 'str' and 'int' objects
        >>>
                                     
1.1 ¿Qué es Python? (III)
    Multiplataforma:



        Python es capaz de ser ejecutado en múltiples 
    


        arquitecturas y sistemas operativos:
                 Arquitecturas:  (”X86”,”ARM”,”Sparc” ... )
         


                 Sistemas Operativos: (”Windows”, ”GNU­Linux”, ”Unix”, 
         


                 ”Mac Os X”, ”Symbian” ... )




                                   
1.1 ¿Qué es Python? (IIII)
    Orientado a objetos:



        La orientación a objetos es un paradigma de 
    


        programación en el que los conceptos del mundo real 
        relevantes para nuestro problema se trasladan a clases y 
        objetos en nuestro programa. 
        La ejecución del programa consiste en una serie de 
    


        interacciones entre los objetos.
        Python también permite la programación imperativa, 
    


        programación funcional y programación orientada a 
        aspectos.

                            
1.2 ¿Por qué Python?
    Sintaxis clara, limpia y sencilla




    Tipado dinámico, gestión de memoria 



    automáticamente
    Gran cantidad de librerías disponibles de serie 




    Prototipado y desarrollo rápido de aplicaciones




    Lenguaje todoterreno





                         
1.2 ¿Quién utiliza Python?
    Todas las distribuciones Linux




    Gnome, KDE




    Industrias Light & Magic




    Google, Yahoo




    Universitat Jaume I de Castelló en las carreras de 



    Informática




                        
1.3 Python VS otros
     Python,C y Java (¡Hola Mundo!)



                                              Hola mundo en C
    Hola mundo en Python

                                              #include <stdio.h>
    print ”¡Hola Mundo!”

                                              int main (void) {
                                                   printf(”¡Hola Mundo!”);
                                                   return 0;
                                              }


    Hola mundo en Java

    public class HolaMundo {
        public static void main(String [] args) {
                  System.out.println(”¡Hola Mundo!”);
        }
    }


                                     
1.4 Instalación de Python
    GNU­Linux:



                 Lo más probable es que ya venga instalado, de todas 
         


                  maneras:
                         sudo apt­get install python
                     



    Windows:




        Dirígete a http://www.python.org/download/ y bájate 
    


         y ejecuta el instalador correspondiente
    Mac Os X:




        Dirígete a http://www.python.org/download/ y bájate 
    


         y ejecuta el instalador correspondiente
                                   
     
2. Introducción a
Python

          
2.  ¡Hola Mundo!

andreu@ilab:~$ python

Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type quot;helpquot;, quot;copyrightquot;, quot;creditsquot; or quot;licensequot; for more
information.
>>>
>>> print quot;¡Hola Mundo! , soy un intérprete de Pythonquot;
¡Hola Mundo! , soy un intérprete de Python




                         
2.1 Tipos de datos en Python (I)
    Python es un lenguage con tipado dinámico y 



    fuerte...
    En Python existen 5 tipos predefinidos de variables;



        Números:  integers,floats,longs,complex ...
    



        Cadenas: string
    



        Vectores: tuplas,listas ...
    


        Otros: diccionarios (hashes), objetos ...
    




                             
2.1 Tipos de datos en Python (II)
    Numéricos:



        Enteros:
    

                   >>> a=10; b=15; c=a+b; print quot;La suma de a+b esquot;,c
                   La suma de a+b es 25

        Reales:
    

                   >>> pi=3.14; f=2; r=5.50; long_circ=(f*pi*r);
                   print quot;La longitud de la circunferencia es quot;,long_circ
                   La longitud de la circunferencia es 34.54


        Longs:
    
                    >>> a=9L; b=3L; a/b
                    3L


        Complejos:
    



                    >>> a=1+0j; b=2+1j; a+b
                    (3+1j)

                                  
2.1 Tipos de datos en Python (III)
    Cadenas de carácteres:



                Siempre comienzan por comillas simples ' , o comillas dobles ”
        




     >>> init=quot;Me gusta muchoquot;
     >>> asignatura=quot;MTPquot;
     >>> centro=quot;FIVquot;
     >>> print quot;%s la asignatura %s de la %squot; % (init,asignatura,centro)
     Me gusta mucho la asignatura MTP de la FIV
     >>> print init+quot; la asignatura quot;+asignatura+quot; de la quot;+centro
     Me gusta mucho la asignatura MTP de la FIV
     >>> cadena=init+quot; la asignatura quot;+asignatura+quot; de la quot;+centro
     >>> print cadena
     Me gusta mucho la asignatura MTP de la FIV
     >>>




                                   
2.1 Tipos de datos en Python (IV)
    Estructuras de datos lineales:



        Listas:
    


             Puede haber listas de cualquier tipo de elementos (incluso de diferentes 
         


             tipos), un elemento de una lista es mutable (se puede modificar)
             >>> lista_cafeterias=[quot;La Vellaquot;,quot;Conservatorioquot;,quot;Trinquetquot;,quot;Àgoraquot;,quot;Tony'squot;]
             >>> for cafeteria in lista_cafeterias: print cafeteria
             ...
             La Vella
             Conservatorio
             Trinquet
             Àgora
             Tony's
             >>>
             >>> otra_lista=[1,3+3j,quot;Cadenitaquot;]
             >>> lista_de_listas=[otra_lista,lista_cafeterias,[”MTP”,”TCO”,”SIO”,”ETC”] ]

             Acceso a listas:
         


                 >>> lista_cafeterias[0]
                 'La Vella'
                 >>> lista_cafeterias[-1]
                 quot;Tony'squot;
                 >>> lista_cafeterias[:-1]
                 ['La Vella', 'Conservatorio', 'Trinquet', 'Àgora']
                 >>>
                                                 
2.1 Tipos de datos en Python (V)
    Tuplas:



        No se pueden modificar los elementos de una tupla
    



        >>> t = 12345, 54321, 'Foo'
        >>> t
        (12345, 54321, 'Foo')
        >>> t[2]=quot;Barquot;
        Traceback (most recent call last):
         File quot;<stdin>quot;, line 1, in <module>
        TypeError: 'tuple' object does not support item assignment
        >>>




                                  
2.1 Tipos de datos en Python (VI)
    Matrices:



        import math
        matriz2d=[ [1,2],[2,-12]]
        mult=math.pi

        for i in range(len(matriz2d)):
           for j in range(len(matriz2d[i])):
               matriz2d[i][j]*=mult

        for i in range(len(matriz2d)):
           for j in range(len(matriz2d[i])):
               print matriz2d[i][j]

        # Daría como resultado
        3.14159265359
        6.28318530718
        6.28318530718
        -37.6991118431


                                     
2.1 Tipos de datos en Python (VII)
    Otras estructuras de datos lineales:



        Pilas:
    
              >>> pila=[1,3,5,7]
              >>> pila.pop()
              7
              >>> pila.append(7)
              >>> pila[0]
              1
              >>> pila[-1]
              7
              >>>




        Colas:
    
              >>> queue = [quot;Ericquot;, quot;Johnquot;, quot;Michaelquot;]
              >>> queue.append(quot;Terryquot;)
              >>> queue.append(quot;Grahamquot;)
              >>> queue.pop(0)
              'Eric'
              >>> queue.pop(0)
              'John'
              >>> queue
              ['Michael', 'Terry', 'Graham']


                                          
2.1 Tipos de datos en Python (VIII)
    Diccionarios



          Hash, conjunto de pares ordenados {clave:valor}
     



         asignaturas = {”mtp”:”dsic”,”etc2g”:”disca”}
         >>>asignaturas[”mtp”]
         dsic

         asignaturas.has_key(”est”)
         False

         >>> asignaturas.keys()
         ['mtp', 'etc2g']

         >>> asignaturas.items()
         [('mtp', 'dsic'), ('etc2g', 'disca')]




                                            
2.2 Control de flujo (I)
    Condicionales:


               If dia==”Jueves”:
                     print ”Hoy hay charlas de Polinux”

               elif dia==”Sábado”:
                     print ”Hoy habrá fiesta”

               else:
                    print ”Hoy será un día aburrido”



               Si se van a evaluar varias condiciones, mejor ponerlas entre 
       


               paréntesis
               If (dia>28) and (mes==2) and ( (anyo%100 !=0) or (anyo%400!=0):
                     print ”Error, el anyo ”+anyo+ ”no es bisiesto”
               elif (anyo%100==0) and (anyo%400==0):
                     print ”El anyo ”+anyo+ ” es bisiesto”
               else:
                     pass
                                       
2.2 Control de flujo (II)
    Bucles:



        Bucle for
    


                   Es un bucle foreach, diferente al de C/C++,Java ... 
              


                   Está pensado para iterar sobre una secuencia de elementos
              


                  asignaturas=[”MTP”,”PRG”,”SIO”,”SOP”,”SOP2”,”RED”]
                  for asignatura in asignaturas:
                       print ”Voy a aprobar ”+asignatura


                   Si queremos ”imitar” a la forma de C/C++ ... debemos hacerlo así:
              




                    asignaturas=[”MTP”,”PRG”,”SIO”,”SOP”,”SOP2”,”RED”]
                    for i in range(len(asignaturas)):
                           print ”Voy a aprobar ”+asignatura[i]


                      for i in range(0,15000):
                            if (EsPrimo(i)):
                                 print ”%d ¡es primo!”%(i)

                                      
2.2 Control de flujo (III)
    Bucles:



         Bucle while:
    


        while i<100:
            print i
            i=i*2


        lista=range(0,10)
        while len(lista)!=0:
             lista.pop()

        while (valor<100) and (valor>200):
            valor=int(raw_input(”Dame un valor entre 100 y 200: ”))
            if valor<100:
                  print ”Necesito un valor mayor”
            elif valor>200:
                  print ”Necesito un valor menor”
            else:
                  break
                                    
2.3 Entrada y salida (I)
    Entrada estándar:



        2 métodos:
    


              raw_input(), y read() y sus derivados
          


              raw_input() lee de stdin
          


              read() lee de un flujo (fichero,stdin,socket ... )
          


        nombre=raw_input(”¿Cómo te llamas? ”)
        print ”Encantado, ”+nombre

        import sys
        ...
        print ”Dame tu nombre: ”
        nombre=sys.stdin.readline()
        print ”Te llamas %s”%(nombre)




                                   
2.3 Entrada y salida (II)
    Salida estándar:



        2 métodos:
    


                 print()  y write()
         


                 print() escribe en stdout
         


                 Write() escribe en un flujo (fichero,stdin,socket ... )
         



             print ”¡Python mola!”

             lang=”Perl”; caract=”ofuscado”
             print ”¡%s es %s !” % (lang,caract)

             import sys
             sys.stdout.write(”Foo & Bar”)




                                       
2.4 Ficheros (I)
    Ficheros:



        De estilo UNIX
    


        Abrir fichero:
    


             fich=open(nombre_fichero,modo)
         


             Modos de apertura:
         


                     r →  Lectura, texto
                 


                     rb → Lectura, binario
                 


                     w →  Escritura, texto
                 


                     wb → Escritura, binario
                 


                     a → Añadir (append)
                 


                        Si se le añade un + después del modo de apertura, si no existe el 


                         fichero, se crea.
        Cerrar fichero:
    


             fich.close()
         

                                        
2.4 Ficheros (II)
    Ficheros:



        Leer:
    


                 fich.read(num_bytes)  → lee num_bytes de un fichero , si no se 
         


                 especifica parámetro, se lee el fichero completo
                 fich.readline() → lee fich hasta encontrar 'n'
         




        Ecribir:
    


                 fich.write(variable) → escribe variable en un fichero
         


                 fich.writeline(”Python”) → escribe Pythonn en un fichero
         




                                     
2.4 Ficheros (III)
    Ejemplos:

                                         try:
                                                fentrada=open(”entrada.txt”,”r”)
      fich=open(”fichero.txt”,”r”)              fsalida=open(”salida.txt”,”w+”)
      for linea in fichero:
            print linea                  except:
      fich.close()                           import sys
                                             print ”Ha fallado la apertura”
                                             sys.exit(-1)
      fich=open(”fichero.tx”,”r”)
      linea=fich.readline()
      print linea                        while (True):
      while (True):                          linea=fentrada.readline()
           linea=fich.readline()             fsalida.write(linea)
           if (len(linea))==0:
                 break                   fentrada.close()
                                         fsalida.close()
           print linea
      fich.close()



                                      
2.4 Ficheros (IV)
    Serialización simple (cPickle):



                 Guarda y recupera cualquier tipo de datos en un fichero en 
         


                  formato binario.
     >> import cPickle
     >> datos = {'Nombre':'Andrés','Edad':22}
     >> f=open(”datos.binarios”,”w”)
     >> cPickle.dump(f,datos)
     >> f.close()
     >> file=open(”datos.binarios”,”rb”)
     >> copia=cPiclke.load(file)
     >> copia['Nombre']
        Andrés




                                   
2.5 Funciones (I)
     Se definen con la palabra reservada 'def'...


    def nombre_función (parámetro1,*args,**kwargs):
         # Aquí el cuerpo de la función                  nombre es el parámetro
                                                        que se le pasa a la función
    def Saludar():
        Print ”!Hola Mundo!”

    def SaludarconNombre (nombre):
        Print ”!Hola %s!” % (nombre)

    def SaludarconNombre (nombre=”anónimo”):
        Print ”!Hola %s!” % (nombre)
                                              nombre es el parámetro
                                            que se le pasa a la función,
                                       en este caso tiene un valor por defecto




                                  
2.5 Funciones (II)
    Llamadas a funciones:


                                                  SaludarconNombre es el nombre de
                                                  la función en el espacio de nombres
    def SaludarconNombre (nombre=”anónimo”):
                                                  nombre es el parámetro pasado en la
        print ”¡Hola %s!” % (nombre)
                                                            llamada a función
    >>> nombre=”Andrés”
    >>> SaludarconNombre(nombre)
    ¡Hola Andrés!


    def Sumar(a,b):                               Si no se le pasa el número
        print a+b                              correcto de argumentos, Python
                                            muestra una excepción de tipo TypeError
    >>> Sumar(1)
    Traceback (most recent call last):
      File quot;<stdin>quot;, line 1, in <module>
    TypeError: Sumar() takes exactly 2
    arguments (1 given)
    >>> Sumar(1,2)
    3
                                    
2.5 Funciones (III)
    El paso de parámetros en funciones se hace por referencia.




    Los cambios en variables sólo se 'reflejan' fuera de la función si el 



      parámetro pasado es un objeto mutable (listas).
    Para devolver valores utilizaremos la palabra reservada 'return'.




    La mejor forma de asegurarnos que la variable 'de fuera' se modifica 



      tras ejecutar la función, es devolver la variable modificada.

    def Incrementa(valor,cantidad):
         valor=valor+cantidad
         return valor

    >>> val=10
    >>> val=Incrementa(val,100)
    >>> print val
    110
    >>>

                                   
2.5 Funciones (IV)
     Paso de parámetros *args y **kwargs:
 


def ImprimeLista (propietario,*lista):          def varios(p1, **otros):
     print ”Tengo una lista de ”+propietario      print ”p1 vale ”+str(p1)
     for elemento in lista:                       for i in otros.items():
                                        lista
          print elemento                             print i

                                                >>> varios(quot;algoquot;,uno=quot;dosquot;,dos=3)
>>>ImprimeLista(quot;Camareroquot;,quot;Bravasquot;,quot;Sepiaquot;)    p1 valealgo
Tengo una lista de Camarero                     ('dos', 3)
Bravas                                          ('uno', 'dos')
Sepia                                           >>>




                                     
2.6 Excepciones
    Una excepción se lanza cuando ha ocurrido algún error que Python 



      no ”sabe” como manejar, y termina el programa:
    def division(a,b):
         c=(a/b)
         return c

    >>> division(10/0)
    Traceback (most recent call last):
                                                                   La excepción, y su
     File quot;<stdin>quot;, line 1, in <module>
                                                                       explicación
    ZeroDivisionError: integer division or modulo by
    zero
                                                       >>> try:
                         Excepción a capturar          ... division(10,0)
    try:                                               ... except ZeroDivisionError:
          division(10,0)                               ... print quot;No se puede dividir por ceroquot;
                                                       ... except:
    except ZeroDivisionError:                          ... print quot;Error inesperadoquot;
          print ”No se puede dividir por cero”         ... finally:
    except:                                            ... print division(10,1)
                                                       ...
          print ”Error inesperado”
                                                       No se puede dividir por cero
    finally:                                           10
          print division(10,1)
                                     
     
3. Módulos y
paquetes

      
3.1 Módulos y paquetes
      Módulo: Conjunto de funciones, clases y variables guardadas en un fichero .py




      Paquete: Colección de módulos situados en un mismo directorio.




                   Para que un directorio sea reconocido como paquete es necesario que éste 
              


                     contenga un fichero de nombre __init__.py que puede estar vacío. 
                  Un paquete puede contener subpaquetes (subdirectorios, cada uno con su 
              


                    __init__.py)
                                                                     # fichero funciones.py
                                                                     def saludar (nombre):
    La diferencia entre
                                                                          print ”Hola ”+nombre
    from paquete import * e import *
    está en el espacio de nombres.
                                                                     def sumar (a,b):
                                                                          return (a+b)
    # paquete.py             >>> import math
    def algo():              >>> print math.cos(0)
                                                                     #intérprete
         Print ”algo”        1.0
                                                                     >>> from funciones import *
                                                                     >>> saludar(”Andrés”)
    import paquete
                                                                          Hola Andrés
    paquete.algo()
    --------------------------------------------------------
                                                                     >>> res=sumar(1+3)
    from paquete import * / algo:
                                                                     >>> print res
    algo()
                                                                         4
                                                  
3.2 La librería estándar (I)
    Python tiene una amplia librería estándar 



     implementada para casi todas las plataformas y 
     sistemas operativos con muchísimos módulos 
     útiles.
    Sistemas operativos:



               sys y os
       



    Bases de datos:



               Pysqlite3, MySQLdb
       



    Redes:



               httplib,socket,urllib,xmlrpc,soap ...
       


                               
3.2 La librería estándar (II)
    Hay muchos tipos de módulos para hacer casi 



     cualquier cosa:
               Procesamiento de texto, redes, bases de datos, 
       


                 sistemas operativos, cálculos complejos, gráficos, 
                 interfaces gŕaficas, páginas web, comunicaciones 
                 bluetooth …
    Consultar Python Standard Library:



                        http://effbot.org/librarybook/
                    



    Consultar PyDoc:



               http://pydoc.org
       


                                  
3.2 La librería estándar (III)
    Instalar un paquete es fácil:



               Lo compilamos e instalamos nosotros mismos
       


                 cd paquete
                 python setup.py build
                 sudo python setup.py install



               Python se encarga de hacerlo:
       




               sudo easy_install nombre_paquete




                                    
     
4. Documentación



       
4.1 Libros sobre Python (I)




              
4.1 Libros sobre Python (II)
    Libros esenciales:



               Programming Python
       


               Learning Python
       



               Python Standard Library
       


               Introducción a la programación Python y C vol I
       


               Python in a Nutshell
       


               Python for Dummies
       



               Python Cookbook
       


               Dive into Python
       


               Programming like a scientist with Python
       


                              
4.2 Recursos online (I)
    Para iniciarse:



               Introducción a la programación con Python y C 
       


                 volumen I, Python (Universitat Jaume I):
                    http://marmota.act.uji.es/ii04/teoria.shtml
                




               Python para todos, Raúl González Duque:
       


                          http://mundogeek.net
                      



               Dive into Python:
       



                    http://diveintopython.org/
                




               Charla  ”Python avanzado” de Polinux:
       


                          http://www.polinux.upv.es
                      


                                    
4.2 Recursos online (II)
    General:



                 Página web oficial de Python
         


                      http://www.python.org
                  




        Effbot (página web de Fredrik Lundh)
    



                            http://effbot.org
                        


                 Lista python­es en Aditel
         


                      http://listas.aditel.org/archivos/python­es
                  




                                     
     
¿Alguna pregunta o duda?



    ¡Gracias por vuestra atención!

    Andrés Ignacio Martínez Soto



    http://www.andresmartinezsoto.es



    anmarso4@fiv.upv.es



                  
FIN


    END OF



    PRESENTATION


          

Más contenido relacionado

La actualidad más candente

Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Python Basics | Python Tutorial | Edureka
Python Basics | Python Tutorial | EdurekaPython Basics | Python Tutorial | Edureka
Python Basics | Python Tutorial | EdurekaEdureka!
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Programming in Python
Programming in Python Programming in Python
Programming in Python Tiji Thomas
 
Overview of python 2019
Overview of python 2019Overview of python 2019
Overview of python 2019Samir Mohanty
 
Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)Pedro Rodrigues
 
What is Python? | Edureka
What is Python? | EdurekaWhat is Python? | Edureka
What is Python? | EdurekaEdureka!
 
Introduction To Python
Introduction To PythonIntroduction To Python
Introduction To PythonVanessa Rene
 
Interactive Python PPT with animations
Interactive Python PPT with animationsInteractive Python PPT with animations
Interactive Python PPT with animationsShauryaChawla4
 
Multiprocessing with python
Multiprocessing with pythonMultiprocessing with python
Multiprocessing with pythonPatrick Vergain
 
Variables & Data Types In Python | Edureka
Variables & Data Types In Python | EdurekaVariables & Data Types In Python | Edureka
Variables & Data Types In Python | EdurekaEdureka!
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básicoCezar Souza
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 

La actualidad más candente (20)

Python Tutorial Part 1
Python Tutorial Part 1Python Tutorial Part 1
Python Tutorial Part 1
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Python Basics | Python Tutorial | Edureka
Python Basics | Python Tutorial | EdurekaPython Basics | Python Tutorial | Edureka
Python Basics | Python Tutorial | Edureka
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Programming in Python
Programming in Python Programming in Python
Programming in Python
 
Overview of python 2019
Overview of python 2019Overview of python 2019
Overview of python 2019
 
Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)
 
What is Python? | Edureka
What is Python? | EdurekaWhat is Python? | Edureka
What is Python? | Edureka
 
Introduction To Python
Introduction To PythonIntroduction To Python
Introduction To Python
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Interactive Python PPT with animations
Interactive Python PPT with animationsInteractive Python PPT with animations
Interactive Python PPT with animations
 
Python Basics
Python BasicsPython Basics
Python Basics
 
F strings
F stringsF strings
F strings
 
Multiprocessing with python
Multiprocessing with pythonMultiprocessing with python
Multiprocessing with python
 
Variables & Data Types In Python | Edureka
Variables & Data Types In Python | EdurekaVariables & Data Types In Python | Edureka
Variables & Data Types In Python | Edureka
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
Object oriented programming in python
Object oriented programming in pythonObject oriented programming in python
Object oriented programming in python
 
Multiprocessing in python
Multiprocessing in pythonMultiprocessing in python
Multiprocessing in python
 
Python
Python Python
Python
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 

Similar a Introduccion a Python

FUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsxFUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsxFernando Solis
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfCeth1
 
Integrando C com Python
Integrando C com PythonIntegrando C com Python
Integrando C com Pythongsroma
 
Manual de python
Manual de pythonManual de python
Manual de pythonULEAM
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientesalexis ibarra
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller PythonSergio Soto
 
Sesión 1: Python
Sesión 1: PythonSesión 1: Python
Sesión 1: Pythonmaluacsa
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mariano Reingart
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Ricardo Guerrero Gómez-Olmedo
 
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Daniel González Cerviño
 
Intro Python
Intro PythonIntro Python
Intro Pythonctme
 

Similar a Introduccion a Python (20)

Yudy Centeno M
Yudy Centeno MYudy Centeno M
Yudy Centeno M
 
FUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsxFUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsx
 
Python_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdfPython_Module_01_Courtesy.pdf
Python_Module_01_Courtesy.pdf
 
Integrando C com Python
Integrando C com PythonIntegrando C com Python
Integrando C com Python
 
Python101
Python101Python101
Python101
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Programador Jr. para Python Primera Parte
Programador Jr. para Python Primera ParteProgramador Jr. para Python Primera Parte
Programador Jr. para Python Primera Parte
 
Transparencias taller Python
Transparencias taller PythonTransparencias taller Python
Transparencias taller Python
 
Phyton
PhytonPhyton
Phyton
 
Sesión 1: Python
Sesión 1: PythonSesión 1: Python
Sesión 1: Python
 
Introduccion a Ppython
Introduccion a PpythonIntroduccion a Ppython
Introduccion a Ppython
 
Intro python
Intro pythonIntro python
Intro python
 
Intro python
Intro pythonIntro python
Intro python
 
Eventos intropython
Eventos intropythonEventos intropython
Eventos intropython
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
 
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
Codemotion Madrid 2013 - [PHP] desarrollo de extensiones en c c++
 
Intro Python
Intro PythonIntro Python
Intro Python
 

Más de Andrés Ignacio Martínez Soto (8)

Triptic20anys copia
Triptic20anys copiaTriptic20anys copia
Triptic20anys copia
 
Triptico afergodella
Triptico afergodellaTriptico afergodella
Triptico afergodella
 
Ferromed01
Ferromed01Ferromed01
Ferromed01
 
Llibret Torreta Associació Ferroviària de Godella
Llibret Torreta Associació Ferroviària de GodellaLlibret Torreta Associació Ferroviària de Godella
Llibret Torreta Associació Ferroviària de Godella
 
Ferromed 2
Ferromed 2Ferromed 2
Ferromed 2
 
21 casos de cooperativas de viviendas
21 casos de cooperativas de viviendas21 casos de cooperativas de viviendas
21 casos de cooperativas de viviendas
 
SQLite3
SQLite3SQLite3
SQLite3
 
Introducción a LaTeX
Introducción a LaTeXIntroducción a LaTeX
Introducción a LaTeX
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Introduccion a Python

  • 1. Introducción a Python Andrés Ignacio Martínez Soto anmarso4@fiv.upv.es Seminarios Formación Polinux València 20 Noviembre 2008    
  • 2. NULL: Licencia de ésta presentación Usted es libre de:     * copiar, distribuir y comunicar públicamente la obra     * hacer obras derivadas      Bajo las condiciones siguientes:      Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada  por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo  o apoyan el uso que hace de su obra).       No comercial. No puede utilizar esta obra para fines comerciales.      Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera  una obra derivada, sólo puede distribuir la obra generada bajo una licencia  idéntica a ésta.     * Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de  la licencia de esta obra.    
  • 3. Contenido 1. ¿Qué es Python?  1.1 ¿Qué es Python?  1.2 ¿Por qué Python?  1.3 Python VS otros  1.4 Instalación  2. Introducción a Python  2.1 Tipos de datos  2.2 Control de flujo  2.3 Entrada y salida  2.4 Ficheros  2.5 Funciones  2.6 Excepciones     
  • 4. Contenido 3 Módulos y paquetes  3.1 Módulos y paquetes  3.2 La librería estándar  4 Documentación  4.1 Libros sobre Python  4.2 Recursos online     
  • 5.    
  • 7. 1.1 ¿Qué es Python? (I) Lenguaje de programación   Guido van Rossum principios años 90 cuyo   Sintaxis muy limpia que favorece un código legible.  Características  Lenguaje interpretado  Tipado dinámico y fuerte  Multiplataforma  Orientado a objetos     
  • 8. 1.1 ¿Qué es Python? (I) Lenguaje interpretado:  Código fuente + intérprete de Python = Programa  Similar a Java:  El intérprete de Python ”compila” a bytecode el programa  (lenguaje máquina optimizado para una máquina virtual de Python ) La 1ª vez que ejecutamos un programa éste compila a bytecode para la   máquina virtual de Python. Después se ejecuta el bytecode optimizado generado, así se ejecuta más   rápido.    
  • 9. 1.1 ¿Qué es Python? (II) Tipado dinámico  No es necesario declarar el tipo de dato que va a contener   una determinada variable, éste se determina en tiempo de  ejecución según el valor asignado Fuertemente tipado  No se permite tratar a una variable como si fuera de un   tipo distinto al que tiene, es necesario convertir de forma  explícita el tipo de la variable Ejemplo: >>> a=quot;Cadenaquot;; b=73; a+b Traceback (most recent call last): File quot;<stdin>quot;, line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects >>>    
  • 10. 1.1 ¿Qué es Python? (III) Multiplataforma:  Python es capaz de ser ejecutado en múltiples   arquitecturas y sistemas operativos: Arquitecturas:  (”X86”,”ARM”,”Sparc” ... )  Sistemas Operativos: (”Windows”, ”GNU­Linux”, ”Unix”,   ”Mac Os X”, ”Symbian” ... )    
  • 11. 1.1 ¿Qué es Python? (IIII) Orientado a objetos:  La orientación a objetos es un paradigma de   programación en el que los conceptos del mundo real  relevantes para nuestro problema se trasladan a clases y  objetos en nuestro programa.  La ejecución del programa consiste en una serie de   interacciones entre los objetos. Python también permite la programación imperativa,   programación funcional y programación orientada a  aspectos.    
  • 12. 1.2 ¿Por qué Python? Sintaxis clara, limpia y sencilla  Tipado dinámico, gestión de memoria   automáticamente Gran cantidad de librerías disponibles de serie   Prototipado y desarrollo rápido de aplicaciones  Lenguaje todoterreno     
  • 13. 1.2 ¿Quién utiliza Python? Todas las distribuciones Linux  Gnome, KDE  Industrias Light & Magic  Google, Yahoo  Universitat Jaume I de Castelló en las carreras de   Informática    
  • 14. 1.3 Python VS otros Python,C y Java (¡Hola Mundo!)  Hola mundo en C Hola mundo en Python #include <stdio.h> print ”¡Hola Mundo!” int main (void) { printf(”¡Hola Mundo!”); return 0; } Hola mundo en Java public class HolaMundo { public static void main(String [] args) { System.out.println(”¡Hola Mundo!”); } }    
  • 15. 1.4 Instalación de Python GNU­Linux:  Lo más probable es que ya venga instalado, de todas   maneras: sudo apt­get install python  Windows:  Dirígete a http://www.python.org/download/ y bájate   y ejecuta el instalador correspondiente Mac Os X:  Dirígete a http://www.python.org/download/ y bájate   y ejecuta el instalador correspondiente    
  • 16.    
  • 18. 2.  ¡Hola Mundo! andreu@ilab:~$ python Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49) [GCC 4.3.2] on linux2 Type quot;helpquot;, quot;copyrightquot;, quot;creditsquot; or quot;licensequot; for more information. >>> >>> print quot;¡Hola Mundo! , soy un intérprete de Pythonquot; ¡Hola Mundo! , soy un intérprete de Python    
  • 19. 2.1 Tipos de datos en Python (I) Python es un lenguage con tipado dinámico y   fuerte... En Python existen 5 tipos predefinidos de variables;  Números:  integers,floats,longs,complex ...  Cadenas: string  Vectores: tuplas,listas ...  Otros: diccionarios (hashes), objetos ...     
  • 20. 2.1 Tipos de datos en Python (II) Numéricos:  Enteros:  >>> a=10; b=15; c=a+b; print quot;La suma de a+b esquot;,c La suma de a+b es 25 Reales:  >>> pi=3.14; f=2; r=5.50; long_circ=(f*pi*r); print quot;La longitud de la circunferencia es quot;,long_circ La longitud de la circunferencia es 34.54 Longs:  >>> a=9L; b=3L; a/b 3L Complejos:  >>> a=1+0j; b=2+1j; a+b (3+1j)    
  • 21. 2.1 Tipos de datos en Python (III) Cadenas de carácteres:  Siempre comienzan por comillas simples ' , o comillas dobles ”  >>> init=quot;Me gusta muchoquot; >>> asignatura=quot;MTPquot; >>> centro=quot;FIVquot; >>> print quot;%s la asignatura %s de la %squot; % (init,asignatura,centro) Me gusta mucho la asignatura MTP de la FIV >>> print init+quot; la asignatura quot;+asignatura+quot; de la quot;+centro Me gusta mucho la asignatura MTP de la FIV >>> cadena=init+quot; la asignatura quot;+asignatura+quot; de la quot;+centro >>> print cadena Me gusta mucho la asignatura MTP de la FIV >>>    
  • 22. 2.1 Tipos de datos en Python (IV) Estructuras de datos lineales:  Listas:  Puede haber listas de cualquier tipo de elementos (incluso de diferentes   tipos), un elemento de una lista es mutable (se puede modificar) >>> lista_cafeterias=[quot;La Vellaquot;,quot;Conservatorioquot;,quot;Trinquetquot;,quot;Àgoraquot;,quot;Tony'squot;] >>> for cafeteria in lista_cafeterias: print cafeteria ... La Vella Conservatorio Trinquet Àgora Tony's >>> >>> otra_lista=[1,3+3j,quot;Cadenitaquot;] >>> lista_de_listas=[otra_lista,lista_cafeterias,[”MTP”,”TCO”,”SIO”,”ETC”] ] Acceso a listas:  >>> lista_cafeterias[0] 'La Vella' >>> lista_cafeterias[-1] quot;Tony'squot; >>> lista_cafeterias[:-1] ['La Vella', 'Conservatorio', 'Trinquet', 'Àgora'] >>>    
  • 23. 2.1 Tipos de datos en Python (V) Tuplas:  No se pueden modificar los elementos de una tupla  >>> t = 12345, 54321, 'Foo' >>> t (12345, 54321, 'Foo') >>> t[2]=quot;Barquot; Traceback (most recent call last): File quot;<stdin>quot;, line 1, in <module> TypeError: 'tuple' object does not support item assignment >>>    
  • 24. 2.1 Tipos de datos en Python (VI) Matrices:  import math matriz2d=[ [1,2],[2,-12]] mult=math.pi for i in range(len(matriz2d)): for j in range(len(matriz2d[i])): matriz2d[i][j]*=mult for i in range(len(matriz2d)): for j in range(len(matriz2d[i])): print matriz2d[i][j] # Daría como resultado 3.14159265359 6.28318530718 6.28318530718 -37.6991118431    
  • 25. 2.1 Tipos de datos en Python (VII) Otras estructuras de datos lineales:  Pilas:  >>> pila=[1,3,5,7] >>> pila.pop() 7 >>> pila.append(7) >>> pila[0] 1 >>> pila[-1] 7 >>> Colas:  >>> queue = [quot;Ericquot;, quot;Johnquot;, quot;Michaelquot;] >>> queue.append(quot;Terryquot;) >>> queue.append(quot;Grahamquot;) >>> queue.pop(0) 'Eric' >>> queue.pop(0) 'John' >>> queue ['Michael', 'Terry', 'Graham']    
  • 26. 2.1 Tipos de datos en Python (VIII) Diccionarios  Hash, conjunto de pares ordenados {clave:valor}  asignaturas = {”mtp”:”dsic”,”etc2g”:”disca”} >>>asignaturas[”mtp”] dsic asignaturas.has_key(”est”) False >>> asignaturas.keys() ['mtp', 'etc2g'] >>> asignaturas.items() [('mtp', 'dsic'), ('etc2g', 'disca')]    
  • 27. 2.2 Control de flujo (I) Condicionales:  If dia==”Jueves”: print ”Hoy hay charlas de Polinux” elif dia==”Sábado”: print ”Hoy habrá fiesta” else: print ”Hoy será un día aburrido” Si se van a evaluar varias condiciones, mejor ponerlas entre   paréntesis If (dia>28) and (mes==2) and ( (anyo%100 !=0) or (anyo%400!=0): print ”Error, el anyo ”+anyo+ ”no es bisiesto” elif (anyo%100==0) and (anyo%400==0): print ”El anyo ”+anyo+ ” es bisiesto” else: pass    
  • 28. 2.2 Control de flujo (II) Bucles:  Bucle for  Es un bucle foreach, diferente al de C/C++,Java ...   Está pensado para iterar sobre una secuencia de elementos  asignaturas=[”MTP”,”PRG”,”SIO”,”SOP”,”SOP2”,”RED”] for asignatura in asignaturas: print ”Voy a aprobar ”+asignatura Si queremos ”imitar” a la forma de C/C++ ... debemos hacerlo así:  asignaturas=[”MTP”,”PRG”,”SIO”,”SOP”,”SOP2”,”RED”] for i in range(len(asignaturas)): print ”Voy a aprobar ”+asignatura[i] for i in range(0,15000): if (EsPrimo(i)): print ”%d ¡es primo!”%(i)    
  • 29. 2.2 Control de flujo (III) Bucles:  Bucle while:  while i<100: print i i=i*2 lista=range(0,10) while len(lista)!=0: lista.pop() while (valor<100) and (valor>200): valor=int(raw_input(”Dame un valor entre 100 y 200: ”)) if valor<100: print ”Necesito un valor mayor” elif valor>200: print ”Necesito un valor menor” else: break    
  • 30. 2.3 Entrada y salida (I) Entrada estándar:  2 métodos:  raw_input(), y read() y sus derivados  raw_input() lee de stdin  read() lee de un flujo (fichero,stdin,socket ... )  nombre=raw_input(”¿Cómo te llamas? ”) print ”Encantado, ”+nombre import sys ... print ”Dame tu nombre: ” nombre=sys.stdin.readline() print ”Te llamas %s”%(nombre)    
  • 31. 2.3 Entrada y salida (II) Salida estándar:  2 métodos:  print()  y write()  print() escribe en stdout  Write() escribe en un flujo (fichero,stdin,socket ... )  print ”¡Python mola!” lang=”Perl”; caract=”ofuscado” print ”¡%s es %s !” % (lang,caract) import sys sys.stdout.write(”Foo & Bar”)    
  • 32. 2.4 Ficheros (I) Ficheros:  De estilo UNIX  Abrir fichero:  fich=open(nombre_fichero,modo)  Modos de apertura:  r →  Lectura, texto  rb → Lectura, binario  w →  Escritura, texto  wb → Escritura, binario  a → Añadir (append)   Si se le añade un + después del modo de apertura, si no existe el  fichero, se crea. Cerrar fichero:  fich.close()     
  • 33. 2.4 Ficheros (II) Ficheros:  Leer:  fich.read(num_bytes)  → lee num_bytes de un fichero , si no se   especifica parámetro, se lee el fichero completo fich.readline() → lee fich hasta encontrar 'n'  Ecribir:  fich.write(variable) → escribe variable en un fichero  fich.writeline(”Python”) → escribe Pythonn en un fichero     
  • 34. 2.4 Ficheros (III) Ejemplos:  try: fentrada=open(”entrada.txt”,”r”) fich=open(”fichero.txt”,”r”) fsalida=open(”salida.txt”,”w+”) for linea in fichero: print linea except: fich.close() import sys print ”Ha fallado la apertura” sys.exit(-1) fich=open(”fichero.tx”,”r”) linea=fich.readline() print linea while (True): while (True): linea=fentrada.readline() linea=fich.readline() fsalida.write(linea) if (len(linea))==0: break fentrada.close() fsalida.close() print linea fich.close()    
  • 35. 2.4 Ficheros (IV) Serialización simple (cPickle):  Guarda y recupera cualquier tipo de datos en un fichero en   formato binario. >> import cPickle >> datos = {'Nombre':'Andrés','Edad':22} >> f=open(”datos.binarios”,”w”) >> cPickle.dump(f,datos) >> f.close() >> file=open(”datos.binarios”,”rb”) >> copia=cPiclke.load(file) >> copia['Nombre'] Andrés    
  • 36. 2.5 Funciones (I) Se definen con la palabra reservada 'def'...  def nombre_función (parámetro1,*args,**kwargs): # Aquí el cuerpo de la función nombre es el parámetro que se le pasa a la función def Saludar(): Print ”!Hola Mundo!” def SaludarconNombre (nombre): Print ”!Hola %s!” % (nombre) def SaludarconNombre (nombre=”anónimo”): Print ”!Hola %s!” % (nombre) nombre es el parámetro que se le pasa a la función, en este caso tiene un valor por defecto    
  • 37. 2.5 Funciones (II) Llamadas a funciones:  SaludarconNombre es el nombre de la función en el espacio de nombres def SaludarconNombre (nombre=”anónimo”): nombre es el parámetro pasado en la print ”¡Hola %s!” % (nombre) llamada a función >>> nombre=”Andrés” >>> SaludarconNombre(nombre) ¡Hola Andrés! def Sumar(a,b): Si no se le pasa el número print a+b correcto de argumentos, Python muestra una excepción de tipo TypeError >>> Sumar(1) Traceback (most recent call last): File quot;<stdin>quot;, line 1, in <module> TypeError: Sumar() takes exactly 2 arguments (1 given) >>> Sumar(1,2) 3    
  • 38. 2.5 Funciones (III) El paso de parámetros en funciones se hace por referencia.  Los cambios en variables sólo se 'reflejan' fuera de la función si el   parámetro pasado es un objeto mutable (listas). Para devolver valores utilizaremos la palabra reservada 'return'.  La mejor forma de asegurarnos que la variable 'de fuera' se modifica   tras ejecutar la función, es devolver la variable modificada. def Incrementa(valor,cantidad): valor=valor+cantidad return valor >>> val=10 >>> val=Incrementa(val,100) >>> print val 110 >>>    
  • 39. 2.5 Funciones (IV) Paso de parámetros *args y **kwargs:  def ImprimeLista (propietario,*lista): def varios(p1, **otros): print ”Tengo una lista de ”+propietario print ”p1 vale ”+str(p1) for elemento in lista: for i in otros.items(): lista print elemento print i >>> varios(quot;algoquot;,uno=quot;dosquot;,dos=3) >>>ImprimeLista(quot;Camareroquot;,quot;Bravasquot;,quot;Sepiaquot;) p1 valealgo Tengo una lista de Camarero ('dos', 3) Bravas ('uno', 'dos') Sepia >>>    
  • 40. 2.6 Excepciones Una excepción se lanza cuando ha ocurrido algún error que Python   no ”sabe” como manejar, y termina el programa: def division(a,b): c=(a/b) return c >>> division(10/0) Traceback (most recent call last): La excepción, y su File quot;<stdin>quot;, line 1, in <module> explicación ZeroDivisionError: integer division or modulo by zero >>> try: Excepción a capturar ... division(10,0) try: ... except ZeroDivisionError: division(10,0) ... print quot;No se puede dividir por ceroquot; ... except: except ZeroDivisionError: ... print quot;Error inesperadoquot; print ”No se puede dividir por cero” ... finally: except: ... print division(10,1) ... print ”Error inesperado” No se puede dividir por cero finally: 10 print division(10,1)    
  • 41.    
  • 43. 3.1 Módulos y paquetes Módulo: Conjunto de funciones, clases y variables guardadas en un fichero .py  Paquete: Colección de módulos situados en un mismo directorio.   Para que un directorio sea reconocido como paquete es necesario que éste   contenga un fichero de nombre __init__.py que puede estar vacío.  Un paquete puede contener subpaquetes (subdirectorios, cada uno con su   __init__.py) # fichero funciones.py def saludar (nombre): La diferencia entre print ”Hola ”+nombre from paquete import * e import * está en el espacio de nombres. def sumar (a,b): return (a+b) # paquete.py >>> import math def algo(): >>> print math.cos(0) #intérprete Print ”algo” 1.0 >>> from funciones import * >>> saludar(”Andrés”) import paquete Hola Andrés paquete.algo() -------------------------------------------------------- >>> res=sumar(1+3) from paquete import * / algo: >>> print res algo() 4    
  • 44. 3.2 La librería estándar (I) Python tiene una amplia librería estándar   implementada para casi todas las plataformas y  sistemas operativos con muchísimos módulos  útiles. Sistemas operativos:  sys y os  Bases de datos:  Pysqlite3, MySQLdb  Redes:  httplib,socket,urllib,xmlrpc,soap ...     
  • 45. 3.2 La librería estándar (II) Hay muchos tipos de módulos para hacer casi   cualquier cosa: Procesamiento de texto, redes, bases de datos,   sistemas operativos, cálculos complejos, gráficos,  interfaces gŕaficas, páginas web, comunicaciones  bluetooth … Consultar Python Standard Library:  http://effbot.org/librarybook/  Consultar PyDoc:  http://pydoc.org     
  • 46. 3.2 La librería estándar (III) Instalar un paquete es fácil:  Lo compilamos e instalamos nosotros mismos  cd paquete python setup.py build sudo python setup.py install Python se encarga de hacerlo:  sudo easy_install nombre_paquete    
  • 47.    
  • 50. 4.1 Libros sobre Python (II) Libros esenciales:  Programming Python  Learning Python  Python Standard Library  Introducción a la programación Python y C vol I  Python in a Nutshell  Python for Dummies  Python Cookbook  Dive into Python  Programming like a scientist with Python     
  • 51. 4.2 Recursos online (I) Para iniciarse:  Introducción a la programación con Python y C   volumen I, Python (Universitat Jaume I): http://marmota.act.uji.es/ii04/teoria.shtml  Python para todos, Raúl González Duque:  http://mundogeek.net  Dive into Python:  http://diveintopython.org/  Charla  ”Python avanzado” de Polinux:  http://www.polinux.upv.es     
  • 52. 4.2 Recursos online (II) General:  Página web oficial de Python  http://www.python.org  Effbot (página web de Fredrik Lundh)  http://effbot.org  Lista python­es en Aditel  http://listas.aditel.org/archivos/python­es     
  • 53.    
  • 54. ¿Alguna pregunta o duda?  ¡Gracias por vuestra atención! Andrés Ignacio Martínez Soto  http://www.andresmartinezsoto.es  anmarso4@fiv.upv.es     
  • 55. FIN END OF  PRESENTATION