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

Introduction to Python
Introduction to Python Introduction to Python
Introduction to Python amiable_indian
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++Idalia Tristan
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 MinMarco Mansilla
 
PYTHON - TKINTER - GUI - PART 1.ppt
PYTHON - TKINTER - GUI - PART 1.pptPYTHON - TKINTER - GUI - PART 1.ppt
PYTHON - TKINTER - GUI - PART 1.pptPriyaSoundararajan1
 
Python - gui programming (tkinter)
Python - gui programming (tkinter)Python - gui programming (tkinter)
Python - gui programming (tkinter)Learnbay Datascience
 
Date and Time Module in Python | Edureka
Date and Time Module in Python | EdurekaDate and Time Module in Python | Edureka
Date and Time Module in Python | EdurekaEdureka!
 
Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)Paige Bailey
 
Insertar imágenes y color de fondo en html
Insertar imágenes y color de fondo en htmlInsertar imágenes y color de fondo en html
Insertar imágenes y color de fondo en htmlInmaculada Concepción
 
ejercicio visual basic 1 programa de sumar y restar
ejercicio visual basic 1 programa de sumar y restarejercicio visual basic 1 programa de sumar y restar
ejercicio visual basic 1 programa de sumar y restarjhordy2000
 
Introduction to Python programming
Introduction to Python programmingIntroduction to Python programming
Introduction to Python programmingDamian T. Gordon
 
Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python Jaganadh Gopinadhan
 
Presentacion Pseint
Presentacion PseintPresentacion Pseint
Presentacion Pseintegalindo1104
 
An Introduction to CMake
An Introduction to CMakeAn Introduction to CMake
An Introduction to CMakeICS
 
Object-Oriented Programming Concepts
Object-Oriented Programming ConceptsObject-Oriented Programming Concepts
Object-Oriented Programming ConceptsKwangshin Oh
 

La actualidad más candente (20)

Introduction to Python
Introduction to Python Introduction to Python
Introduction to Python
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 Min
 
PYTHON - TKINTER - GUI - PART 1.ppt
PYTHON - TKINTER - GUI - PART 1.pptPYTHON - TKINTER - GUI - PART 1.ppt
PYTHON - TKINTER - GUI - PART 1.ppt
 
Python - gui programming (tkinter)
Python - gui programming (tkinter)Python - gui programming (tkinter)
Python - gui programming (tkinter)
 
Date and Time Module in Python | Edureka
Date and Time Module in Python | EdurekaDate and Time Module in Python | Edureka
Date and Time Module in Python | Edureka
 
Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)Python 101: Python for Absolute Beginners (PyTexas 2014)
Python 101: Python for Absolute Beginners (PyTexas 2014)
 
C++
C++C++
C++
 
Python
PythonPython
Python
 
Insertar imágenes y color de fondo en html
Insertar imágenes y color de fondo en htmlInsertar imágenes y color de fondo en html
Insertar imágenes y color de fondo en html
 
ejercicio visual basic 1 programa de sumar y restar
ejercicio visual basic 1 programa de sumar y restarejercicio visual basic 1 programa de sumar y restar
ejercicio visual basic 1 programa de sumar y restar
 
Introduction to Python programming
Introduction to Python programmingIntroduction to Python programming
Introduction to Python programming
 
Intro to Python
Intro to PythonIntro to Python
Intro to Python
 
Flex bison
Flex bisonFlex bison
Flex bison
 
Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python Let’s Learn Python An introduction to Python
Let’s Learn Python An introduction to Python
 
Presentacion Pseint
Presentacion PseintPresentacion Pseint
Presentacion Pseint
 
Unit testing with JUnit
Unit testing with JUnitUnit testing with JUnit
Unit testing with JUnit
 
An Introduction to CMake
An Introduction to CMakeAn Introduction to CMake
An Introduction to CMake
 
Git commands
Git commandsGit commands
Git commands
 
Object-Oriented Programming Concepts
Object-Oriented Programming ConceptsObject-Oriented Programming Concepts
Object-Oriented Programming Concepts
 

Similar a Introducción a Python: tipos de datos

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 Introducción a Python: tipos de datos (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

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Último (20)

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

Introducción a Python: tipos de datos

  • 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