python y wxpython, ¡hoy hará sol! - · pdf file– lenguaje: estructuras,...

Download Python y wxPython, ¡hoy hará Sol! - · PDF file– Lenguaje: Estructuras, palabras reservadas, funciones genéricas, etc. Ej: print, if ... IDLE, NetBeans, Stani's Python Editor,

If you can't read please download the document

Upload: trinhdiep

Post on 06-Feb-2018

225 views

Category:

Documents


2 download

TRANSCRIPT

  • Python y wxPython, hoy har Sol!

    ngel Luis Garca Garca

  • Un murciano que sabe algo de Python... Quin soy? ngel Luis UMU: Ing. Tcnico Inf. Gestin Trabajo: 2004-2010

    AngelPlus (VB 6.0) AMC (PB 6.5) Andamur (PB 6.5) MARNYS (Python 2.5.4, Crystal) Academia P. de Lema (Ofimtica) Proyectos personales (VB/PB/Python)...

    (algunos sin cobrar...) Programacin (no web), bases de datos, mantenimiento

    de sistemas (servidores, datfonos, PC's), formacin

  • SEPTIEMBRE 2009 ...una revelacin,

    Python me encontr...

    Y desde entonces... hasta hoy

    El Viaje del Navegante(http://elviajedelnavegante.blogspot.com/)

    (ReportLab, XML, wxPython, IronPython, MySQL, etc)

    http://elviajedelnavegante.blogspot.com/

  • Por qu Python es bueno para m? Sintaxis sencilla. Fcil de aprender. Multiplataforma (Unix,

    Mac, Windows). Multiparadigma

    (imperativo, funcional, OO) [se pueden mezclar entre ellos]

    Amplia documentacin

    Multitud de mdulos (web, mviles, escritorio, SOAP, etc).

    Ampliable mediante C y C++.

    Respaldado por Google, Facebook, NASA, etc.

    Tengo el Sndrome de la Cadena chorizo

  • Cadenas chorizo...

  • Python: Historia

    Creado por Guido van Rossum (el benevolente dictador vitalicio) a finales de los 80.http://www.python.org/~guido/http://www.python.org/~guido/

    Desde 2005, en Google (Mountain View).Desde 2005, en Google (Mountain View). Fija directrices y decisiones finales sobre Fija directrices y decisiones finales sobre

    Python.Python. Administrado por Administrado por PSFPSF (Python Software (Python Software

    Foundation), con licencia de cdigo abierto (Foundation), con licencia de cdigo abierto (PSFLPSFL) ) compatible con compatible con GPLGPL de de GNUGNU a partir de versin a partir de versin 2.1.1.2.1.1.

    Sitio web oficial:Sitio web oficial: www.python.orgwww.python.org

    http://www.python.org/~guido/http://www.python.org/

  • Implementaciones de Python

    CPython: (o Python) Implementacin de referencia. Compila, interpreta y contiene mdulos codificados en C estndar.

    Jython: Implementacin para la JVM (Mquina Virtual Java) accediendo a las bibliotecas de Java.

    IronPython: Implementacin para el CRL de Microsoft, para acceder al framework de .NET.

    PyPy: Implementacin de Python escrita en Python (para rizar ms el rizo).

  • Python.... versin 2.XX 3.XX?

    Ayuda para elegir entre 2.XX y 3.XX:http://wiki.python.org/moin/Python2orPython3

    Tres versiones a Diciembre 2010: Python 2.6 (estable) Python 2.7 (estable) Python 3.2 (desarrollo)

    Cul elegir? Depende de nuestras exigencias. Qu modulos necesitamos? Mayora compatibles con 2.6 Futuro? 2.XX es incompatible con 3.XX Mayora de frameworks funcionan con 2.XX (Django, PIL, etc)

    http://wiki.python.org/moin/Python2orPython3

  • Mi recomendacin de versin Python

  • El futuro de Python Artculo: http://blog.apsl.net/2010/07/29/va-a-desaparecer-python/ Lenguaje de propsito general, con ms de 20 aos de vida. Esponsorizado el desarrollo por Google. Utilizado en Industrial Light & Magic, Pixar, BitTorrent, U.S.

    National Weather Service, NASA, NSA, Fermi, Corel, Red Hat, Lockheed Martin, Facebook, etc.

    Conferencias anuales mundiales (PyCon). Multitud de mdulos (libreras), ampliable. Utilizado en programacin de sistemas, clculo numrico, web,

    mviles (Android, Symbian), mquinas virtuales Java y .NET, etc. Casos de xito: Google App Engine (entorno de Cloud Computing de Google,

    que soporta Java y Python). Ms en http://www.python.org/about/success/

    http://blog.apsl.net/2010/07/29/va-a-desaparecer-python/http://code.google.com/intl/ca-ES/appengine/http://www.python.org/about/success/

  • Comenzamos....

  • Python: Conceptos generales Lenguaje de programacin de uso general. De muy alto nivel VHLL (Very high-level programming language)

    Alto nivel de abstraccin (uso de listas, tuplas, diccionarios tablas hashing).

    Multiplataforma (Linux, Mac, Windows) Multiparadigma (imperativo, orientado a objetos y funcional) Interpretado, dinmico, fuertemente tipado, gestin de memoria

    Python: Lenguaje + biblioteca estndar + mdulos de extensin

    Lenguaje: Estructuras, palabras reservadas, funciones genricas, etc. Ej: print, if... else..., def ():.

    Biblioteca estndar: Conjunto de mdulos por defecto en la distribucin. Ej: os, cPickle, datetime.

    Mdulos de extensin: componentes extra. Ej: acceso a bases de datos, XML, YAML, entorno grfico, web.

  • Instalacin de Python De serie en la mayora de distros Linux Para Windows y Mac, www.python.org

    Se instala:

    Intrprete Python (intrprete + compilador cuando sea necesario) IDLE: IDE escrito en Tkinter Documentacin mdulos instalados Manual Python

    http://www.python.org/

  • El intrprete de Python

  • Mini tutorial: funciones y clases

  • Mini tutorial: funciones y clases

  • Mini tutorial: Control de flujo

  • Mini tutorial: Tipos de datos Nmeros Secuencias

    Mutables Listas

    Inmutables Tuplas Cadenas

    Diccionarios Conjuntos

  • LISTAS: Todo potencia!!! Instanciacin:

    a = [] a = ['Odio el Hola Mundo',OBJECT] a = ['ngel Luis','Garca','Garca',32,[18,5,1978]]

    Acceso: a[0] devuelve 'ngel Luis' a[3] devuelve 32 a[4][1] devuelve 5 for i in a: i....

    Mtodos: len(x), count(x), index(x), append(x), remove(x), etc.

  • TUPLAS: Listas inmutables

    Instanciacin: a = () a = ('Hola Lan Party', 2010) a = (OBJECT, [], (243,343))

    Acceso: a[2] devuelve tupla (243, 343)

    Mtodos: count(x), index(x)

  • DICCIONARIOS: Tablas hashing Instanciacin:

    a = {} a = {'clave1':valorX, 'clave2':valorY} a = {'angel':32, 'emilia':32, 200:'Python' }

    LAS CLAVES SON UNVOCAS Acceso:

    a['angel'] devuelve 32 a[200] devuelve 'Python' Mediante iteradores...

    Mtodos: len(x), has_key(k), del(d['x']), etc.

  • Conversiones entre listas, tuplas y diccionarios Sea:

    l = ['Lan Party', 2010] t = ('Odio el Hola Mundo', 'Desde siempre') u = [(1, 'Python'),(2,'wxPython')] d = {1:'XML', 2:'IronPython', 3:'ReportLab'}

    Conversiones:

    c1 = tuple(l) c1 = ('Lan Party', 2010) c2 = list(t) c2 = ['Odio el Hola Mundo', 'Desde siempre'] c3 = dict(u) c3 = {1: 'Python', 2: 'wxPython'} c4 = d.items() c4 = [(1, 'XML'), (2, 'IronPython'), (3, 'ReportLab')] c5 = d.keys() c5 = [1, 2, 3] c6 = d.values() c6 = ['XML', 'IronPython', 'ReportLab']

  • Ms de funciones... parmetros

  • Ms de OO... herencia

  • Ms cosas importantes de OO y funciones... que veremos otro da... OO

    Herencia mltiple y MRO Emular polimorfismo (sobrecarga de mtodos). Mtodos especiales (__dict__, __all__, etc) Metaclases

    Funciones Paso de parmetros: listas y diccionarios. Atributos de funcin. Lambda, yield, etc.

  • Ms cosas importantes... que veremos otro da.... Iteradores. Expresiones regulares (mdulo re). Comprensin de listas. Funciones decoradoras. Entrada/salida (file y los mdulos os, codecs). Interaccin con el sistema (mdulos sys, os). Manejador de excepciones (try/except/finally). Codificacin (sitecustomize, utf-8, decode/encode) Formateo cadenas (%s, %d, etc)

  • Ejemplo: Imports, persistencia y otras hierbas, en Python Aplicacin sencilla de registro de persona (cargar,

    guardar, modificar). Creacin de mdulos, cada cosa en su sitio!!!

    clases_base.py: Entidades. persistencia.py: Persistencia de datos. clases_aplicacion.py: Lgica de negocio adaptada. principal.py: Aplicacin.

  • Ficheros generadosAl compilar principal.py

    Ficheros compilados pyc

  • Ejecutando...

  • from modulo import *

  • Segunda parte....

    Are you ready?

  • El framework wxPython Creado por Robin Dunn, en 1995. Es una librera grfica para Python. Permite crear programas con una interfaz grfica robusta y de

    gran funcionalidad, fcil y simple. Es un wrapper de la plataforma wxWidgets (escrita en C++).

    (Una adaptacin de la biblioteca wxWidgets para ser usada en Python)

    Es Open Source. Multiplataforma (Windows, Unix, Mac). Muy documentado. Proyecto muy activo. (19/10/2010 wxPython 2.9.1.1) www.wxpython.org (software y documentacin)

    The only reason wxPython isn't the standard Python GUI toolkit is that Tkinter was there first.

    Guido van Rossum

    http://www.wxpython.org/

  • El framework wxPython

    Versiones a Diciembre 2010 (para Python 2.5, 2.6 y 2.7): Estable: 2.8.11.0 Desarrollo: 2.9.1.1

    Conocimientos previos para utilizar wxPython: Sintxis y estucturas fundamentales de Python. Programacin orientada a objetos.

    Por qu? Se utilizan clases, se heredan componentes y se hace override en sus mtodos y atributos.

  • Cmo funciona una aplicacin wxPython? wxPython sirve para crear aplicaciones grficas

    orientadas a eventos. A cada evento se le puede asociar un cdigo,

    mediante un proceso llamado binding. El manejador de eventos es el cdigo que se

    dispara a consecuencia de la generacin de un evento.

    Una aplicacin wxPython espera a que se generen eventos, asociando los mismos a un cdigo, llamado manejador de eventos.

  • Estructura de una aplicacin wxPython Una aplicacin wxPython se divide en tres partes:

    Importar el mdulo wx (y dems cosas...) Creacin de la aplicacin wxPython. Creacin del contenedor.

    Componentes. Binding. Manejadores de eventos.

  • Creacin de una aplicacin wxPython

  • Creacin de una aplicacin wxPython

  • Binding y manejadores de eventos

  • Binding y manejadores de ev