Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python:...

64
Python y wxPython, ¡hoy hará Sol! Ángel Luis García García

Transcript of Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python:...

Page 1: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Python y wxPython, ¡hoy hará Sol!

Ángel Luis García García

Page 2: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Un murciano que sabe algo de Python...● ¿Quién soy? Ángel Luis● UMU: Ing. Técnico Inf. Gestión● 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 (Ofimática)– Proyectos personales (VB/PB/Python)...

(algunos sin cobrar...)● Programación (no web), bases de datos, mantenimiento

de sistemas (servidores, datáfonos, PC's), formación

Page 3: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

SEPTIEMBRE 2009 ...una revelación,

Python me encontró...

Y desde entonces... hasta hoy

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

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

Page 4: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

¿Por qué Python es bueno para mí?● Sintaxis sencilla.● Fácil de aprender.● Multiplataforma (Unix,

Mac, Windows).● Multiparadigma

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

● Amplia documentación

● Multitud de módulos (web, móviles, escritorio, SOAP, etc).

● Ampliable mediante C y C++.

● Respaldado por Google, Facebook, NASA, etc.

● Tengo el Síndrome de la Cadena “chorizo”

Page 5: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Cadenas chorizo...

Page 6: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 7: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

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 código abierto (Foundation), con licencia de código abierto (PSFLPSFL) ) compatible con compatible con GPLGPL de de GNUGNU a partir de versión a partir de versión 2.1.1.2.1.1.

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

Page 8: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 9: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Implementaciones de Python

● CPython: (o Python) Implementación de referencia. Compila, interpreta y contiene módulos codificados en C estándar.

● Jython: Implementación para la JVM (Máquina Virtual Java) accediendo a las bibliotecas de Java.

● IronPython: Implementación para el CRL de Microsoft, para acceder al framework de .NET.

● PyPy: Implementación de Python escrita en Python (para rizar más el rizo).

Page 10: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Python.... ¿versión 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)

● ¿Cuál elegir? Depende de nuestras exigencias. – ¿Qué modulos necesitamos? Mayoría compatibles con 2.6– ¿Futuro? 2.XX es incompatible con 3.XX – Mayoría de frameworks funcionan con 2.XX (Django, PIL, etc)

Page 11: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Mi recomendación de versión Python

Page 12: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

El futuro de Python● Artículo: http://blog.apsl.net/2010/07/29/va-a-desaparecer-python/● Lenguaje de propósito general, con más de 20 años 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 módulos (librerías), ampliable.● Utilizado en programación de sistemas, cálculo numérico, web,

móviles (Android, Symbian), máquinas virtuales Java y .NET, etc.● Casos de éxito: Google App Engine (entorno de Cloud Computing de Google,

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

Page 13: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Comenzamos....

Page 14: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Python: Conceptos generales● Lenguaje de programación de uso general.● De muy alto nivel ó VHLL (Very high-level programming language)

– Alto nivel de abstracción (uso de listas, tuplas, diccionarios ó tablas hashing).

● Multiplataforma (Linux, Mac, Windows)● Multiparadigma (imperativo, orientado a objetos y funcional)● Interpretado, dinámico, fuertemente tipado, gestión de memoria

● Python: Lenguaje + biblioteca estándar + módulos de extensión

– Lenguaje: Estructuras, palabras reservadas, funciones genéricas, etc. Ej: print, if... else..., def ():.

– Biblioteca estándar: Conjunto de módulos por defecto en la distribución. Ej: os, cPickle, datetime.

– Módulos de extensión: componentes extra. Ej: acceso a bases de datos, XML, YAML, entorno gráfico, web.

Page 15: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Instalación de Python● De serie en la mayoría de distros Linux● Para Windows y Mac, www.python.org

● Se instala:

– Intérprete Python (intérprete + compilador cuando sea necesario)

– IDLE: IDE escrito en Tkinter– Documentación módulos instalados– Manual Python

Page 16: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

El intérprete de Python

Page 17: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 18: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Mini tutorial: funciones y clases

Page 19: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Mini tutorial: funciones y clases

Page 20: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Mini tutorial: Control de flujo

Page 21: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Mini tutorial: Tipos de datos● Números● Secuencias

– Mutables● Listas

– Inmutables● Tuplas● Cadenas

● Diccionarios● Conjuntos

Page 22: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

LISTAS: ¡¡¡Todo potencia!!!● Instanciación:

– a = []– a = ['Odio el Hola Mundo',OBJECT]– a = ['Ángel Luis','García','García',32,[18,5,1978]]

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

● Métodos: len(x), count(x), index(x), append(x), remove(x), etc.

Page 23: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

TUPLAS: Listas inmutables

● Instanciación:– a = ()– a = ('Hola Lan Party', 2010)– a = (OBJECT, [], (243,343))

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

● Métodos: count(x), index(x)

Page 24: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

DICCIONARIOS: Tablas hashing● Instanciación:

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

● LAS CLAVES SON UNÍVOCAS ● Acceso:

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

● Métodos: len(x), has_key(k), del(d['x']), etc.

Page 25: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

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

Page 26: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Más de funciones... parámetros

Page 27: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Más de OO... herencia

Page 28: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Más cosas importantes de OO y funciones... que veremos otro día...● OO

– Herencia múltiple y MRO– Emular polimorfismo (sobrecarga de métodos).– Métodos especiales (__dict__, __all__, etc)– Metaclases

● Funciones– Paso de parámetros: listas y diccionarios.– Atributos de función.– Lambda, yield, etc.

Page 29: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Más cosas importantes... que veremos otro día....● Iteradores.● Expresiones regulares (módulo re).● Comprensión de listas.● Funciones decoradoras.● Entrada/salida (file y los módulos os, codecs).● Interacción con el sistema (módulos sys, os).● Manejador de excepciones (try/except/finally).● Codificación (sitecustomize, utf-8, decode/encode)● Formateo cadenas (%s, %d, etc)

Page 30: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Ejemplo: Imports, persistencia y otras hierbas, en Python● Aplicación sencilla de registro de persona (cargar,

guardar, modificar). ● Creación de módulos, ¡¡¡cada cosa en su sitio!!!

– clases_base.py: Entidades.– persistencia.py: Persistencia de datos.– clases_aplicacion.py: Lógica de negocio adaptada.– principal.py: Aplicación.

Page 31: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 32: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 33: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 34: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Ficheros generadosAl “compilar” principal.py

Ficheros compilados pyc

Page 35: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Ejecutando...

Page 36: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 37: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

from modulo import *

Page 38: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Segunda parte....

Are you ready?

Page 39: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel
Page 40: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

El framework wxPython● Creado por Robin Dunn, en 1995.● Es una librería gráfica para Python.● Permite crear programas con una interfaz gráfica robusta y de

gran funcionalidad, fácil y simple.● Es un wrapper de la plataforma wxWidgets (escrita en C++).

(Una adaptación 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 documentación)

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

Guido van Rossum

Page 41: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

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:– Sintáxis y estucturas fundamentales de Python.– Programación orientada a objetos.

● ¿Por qué? Se utilizan clases, se heredan componentes y se hace override en sus métodos y atributos.

Page 42: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

¿Cómo funciona una aplicación wxPython?● wxPython sirve para crear aplicaciones gráficas

orientadas a eventos.● A cada evento se le puede asociar un código,

mediante un proceso llamado binding.● El manejador de eventos es el código que se

dispara a consecuencia de la generación de un evento.

● Una aplicación wxPython espera a que se generen eventos, asociando los mismos a un código, llamado manejador de eventos.

Page 43: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Estructura de una aplicación wxPython● Una aplicación wxPython se divide en tres partes:

– Importar el módulo wx (y demás cosas...)– Creación de la aplicación wxPython.– Creación del contenedor.

● Componentes.● Binding.● Manejadores de eventos.

Page 44: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Creación de una aplicación wxPython

Page 45: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Creación de una aplicación wxPython

Page 46: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Binding y manejadores de eventos

Page 47: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Binding y manejadores de eventos

Y al hacer click en el botón

Page 48: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

¿Dónde está la documentación de wxPython? ¿Frame? ¿ein?

Page 49: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Documentación obligatoria

● wxPython Demo

● WxWidgets Reference

● Google

Page 50: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Sizers● Los widgets pueden disponerse con wx.Point y wx.Size,

mediante coordenadas.● Sizer: Mecanismo de disposición de widgets en wxPython.

– Maneja el tamaño y posición de sus widgets, basado en un conjunto de reglas.

– Se asigna a un contenedor (wx.Panel ó wx.Frame).– Es un algoritmo para disponer ó enmarcar un grupo de

widgets.– Los subwidgets que se crean dentro de un contenedor

deben de añadirse por separado al sizer.– El sizer administra la posición de los widgets.

Page 51: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Sizers● Un sizer en wxPython es un objeto con el único

propósito de administrar el posicionamiento de un conjunto de widgets dentro de un contenedor.

● El sizer es la representación de un algoritmo de posicionamiento de pantalla (no un contenedor ó widget).

● Un sizer es una instancia de la clase wx.Sizer.● Un sizer puede estar incluido en otro sizer.

Page 52: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Sizers

● Tipos de sizers:– wx.BoxSizer– wx.FlexGridSizer– wx.GridSizer– wx.GridBagSizer– wx.StaticBoxSizer

● Los más importantes: – wx.BoxSizer y wx.FlexGridSizer

Page 53: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Sizers● Aprender a utilizar sizers manualmente es:

– UNA LOCURA● ¿Alguna solución?

– Utilizar aplicaciones de diseño de pantallas con generación automática de código Python y wxPython.

●wxGlade●wxFormBuilder●wxDesigner

Page 54: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

wxFormBuilder

● Entorno WYSIWYG para diseño gráfico de interfaces para wxWidgets.

● Posibilidad de generar código Python.● Contiene muchos widgets. ● Trabajar con sizers en wxFormBuilder es muy fácil.● http://wxformbuilder.org/● Tutorial: wxFormBuilder en El Viaje del Navegante

Page 55: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Cosas que veremos otro día...

● Widgets más comunes.● Menús.● Widgets avanzados.● MVC en wxPython.● Imágenes.● Impresión.● Los controles Grid y Tree.● ....y un largo etcétera.

Page 56: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Ejemplos completos de wxPython

● Interfaz gráfica de gestión de usuarios.

● Editor de texto.

● Combobox y paso de parámetros entre widgets.

● pyLorca, creación automática de clases.

Page 57: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Anexo I: IDE's, editores y GUI's para Python

Page 58: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

IDE con GUI integrado: BOA Constructor, SharpDevelop

IDE: IDLE, NetBeans, Stani's Python Editor, PyScripter, Geany,

Pyragua,Wingware Python IDE, PythonWin

GUI: wxGlade, wxFormBuilder

Editor: Editra, Notepad++, Jedit, Gedit, BlueFish, SciTE

Shell interactivo: Dreampie

Más herramientas aquí.

Page 59: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Anexo II: Recursos documentales en la red

Page 60: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

http://pyspanishdoc.sourceforge.net/http://python.org.ar/pyar/http://www.freetechbooks.com/python-f6.htmlhttp://www.digilife.be/quickreferences/quickrefs.htmhttp://rgruet.free.fr/http://planet.python.org/http://pypi.python.org/pypi?:action=indexhttp://python.alltop.com/http://ironpython-urls.blogspot.com/http://www.cheat-sheets.org/http://www.portablepython.com/http://diveintopython3.org/table-of-contents.htmlhttp://www.gaudisite.nl/PythonLinks.htmlhttp://code.activestate.com/recipes/langs/python/http://revista.python.org.ar/http://www.ferg.org/http://effbot.org/tkinterbook/http://wiki.python.org/moin/SpanishLanguagehttp://www.java2s.com/http://xoomer.virgilio.it/infinity77/index.htmlhttp://www.andypatterns.com/

Page 61: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

Anexo III: Libros de Python, en español

Page 62: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

● PYTHON GUÍA DE REFERENCIA– ALEX MARTELLI– EDITORIAL O'REILLY

● PROGRAMACIÓN PYTHON 3– MARK SUMMERFIELD– EDITORIAL ADDISON WESLEY

● PYTHON, CREAR – MODIFICAR – REUTILIZAR– JIM KNOWLTON– EDITORIAL WROX

● LA GUÍA DEFINITIVA DE DJANGO– ADRIAN HOLOVATY Y JACOB KAPLAN-MOSS– EDITORIAL APRESS

Page 63: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

El secreto para aprender Python y wxPython...

Buscar, encontrar, modificar, probar y

ver porqué no funciona.

Page 64: Python y wxPython, ¡hoy hará Sol! - Asociación … › sites › default › files › ...Python: Conceptos generales Lenguaje de programación de uso general. De muy alto nivel

¡Muchas gracias a todos!