PythonywxPythonIESAl Andalus PDF
PythonywxPythonIESAl Andalus PDF
PythonywxPythonIESAl Andalus PDF
Sintaxis sencilla. Fcil de aprender. Multiplataforma (Unix, Mac, Windows). Multiparadigma (imperativo, funcional, OO) [se pueden mezclar entre
ellos].
Multitud de mdulos (web, mviles, escritorio, SOAP, etc). Ampliable mediante C/C++. Respaldado por Google, Facebook, NASA, etc. Antdoto para el Sndrome de la Cadena chorizo.
Amplia documentacin.
%adenas chori&o...
El Zen de Python
Bello mejor que feo. Explcito es mejor que implcito. Simple es mejor que complejo. Complejo es mejor que complicado. Plano es mejor que anidado. Disperso es mejor que denso. La legibilidad cuenta. Los casos especiales no son tan especiales como para quebrantar las reglas. Aunque lo prctico gana a la pureza. Los errores no deberan dejarse nunca pasar.
El Zen de Python
A menos que hayan sido silenciados explcitamente. Frente a la ambigedad, rechaza la tentacin de adivinar. Debera haber una -y preferiblemente slo una- manera obvia de hacerlo. Aunque esa manera puede no ser obvia al principio a menos que usted sea holands. Ahora es mejor que nunca. Aunque nunca es a menudo mejor que ya mismo. Si la implementacin es difcil de explicar, es una mala idea. Si la implementacin es fcil de explicar, puede que sea una buena idea. Los espacios de nombres (namespaces) son una gran idea Hagamos ms de esas cosas!
Resumiendo...
Python: 'istoria
Creado por Guido van Rossum (el benevolente dictador vitalicio) a finales de los 80. http://www.python.org/~guido/
Desde 2005, en Google (Mountain View). Fija directrices y decisiones finales sobre Python.
Administrado por PSF (Python Software Foundation), con licencia de cdigo abierto (PSFL) compatible con GPL de GNU a partir de versin 2.1.1. Sitio web oficial: www.python.org
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 CLR de Microsoft, para acceder al framework de .NET. PyPy: Implementacin de Python escrita en Python (para rizar ms el rizo).
)ersiones de Python
Ayuda para elegir entre 2.xx y 3.xx: http://wiki.python.org/moin/Python2orPython3 Tres versiones a Abril 2011:
Python 2.6 Python 2.7 Python 3.2 Qu mdulos necesitamos? Mayora compatibles con 2.6 Futuro? 2.xx es incompatible con 3.xx en algunos aspectos Mayora de frameworks funcionan con 2.xx.
*l +uturo de Python
Lenguaje de propsito general, con ms de 20 aos de vida. Desarrollo esponsorizado 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) de base y de terceros, ampliable. Utilizado en programacin de sistemas, clculo numrico, web, mviles (Android, Symbian), escritorio, 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/
%onceptos generales
Lenguaje de programacin de uso general. De muy alto nivel VHLL (Very high-level programming language)
Multiplataforma (Linux, Mac, Windows) Multiparadigma (imperativo, orientado a objetos y funcional) Interpretado, dinmico, fuertemente tipado, gestin de memoria automtica.
%o
posici,n...
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 (pyodbc, mysqldb, etc), XML, YAML, entorno grfico (wx, Qt, GTK, Tk, etc), web (Django, webpy, TurboGears, Pylons, etc), y un largo etctera.
*l int#rprete Python
Intrprete: rprete probar estructuras, tipos de datos, mdulos, expresiones regulares, etc. Intrprete + fichero .py: .py ejecutar en consola fichero con cdigo Python. P.e.: python ejemplo.py IDE: IDE IDLE, PyScripter (Windows), Stani's Python Editor, Eclipse (pyDev), NetBeans, Geany, etc. RAD: RAD BOA Constructor, SharpDevelop (IronPython)
Intrpretes mejorados: mejorados Shell's interactivos con caractersticas mejoradas. P.e.: Dreampie, pyCrust, pyShell. Editores: Editores emacs, vi, Editra, SciTE, NotePad++, etc. GUI's: GUI's Creacin/diseo interfaces grficas. P.e.: wxFormBuilder (wx), Glade (wx, GTK), Monkey Studio (Qt), etc.
Lo mnimo que se le debe de pedir a cualquier IDE editor, para desarrollar en Python, es la indentacin, coloreado y completitud de cdigo.
---
Tipos de datos:
Nmeros: 2, 2.34, 4000 Booleanos: True, False Listas: ['Hola','Mundo',2011] Tuplas: ('Hola','Mundo',2011) Diccionarios: {clave1:'Hola', clave2:'Mundo'} Conjuntos. Etc.
aci,n
Estructuras iterativas:
Saltos condicionales:
Funciones:
Python: P//
class mi_primera_clase(object):
def __init__(self, param1, param2):
# Constructor. self.atributo1 = param1 self.atributo2 = param2
def getAtributos(self):
return self.atributo1, self.atributo2
01s Python2 3
1s
adera4
Metaclases. Iteradores. Properties de clases. Decoradores. Programacin funcional: map, reduce, lambda, Ms tipos: named tuples, Formateo de cadenas. Codificaciones, .... y un largo etctera.
*je
*je
PROGRAMACIN PYTHON 3
Python en (nternet
Python para todos (Ral Gonzlez Duque) Introduccin a Python (ngel Luis Garca Garca) Comunidad Python Argentina (PyAr) (http://docs.python.org.ar/tutorial/contenido.html) Documentacin Python en SourceForge (http://pyspanishdoc.sourceforge.net/)
*l +ra
ewor5 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)
The only reason wxPython isn't the standard Python GUI toolkit is that Tkinter was there first.Guido van Rossum
*l +ra
ewor5 wxPython
Estable: 2.8.11.0 Desarrollo: 2.9.1.1 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.
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.
Importar el mdulo wx (y dems cosas...) Creacin de la aplicacin wxPython. Creacin del contenedor.
6inding y eventos
anejadores de
6inding y eventos
anejadores de
(n+or
wxPython De
o2 y (
Demo que muestra algunas de las capacidades de wxPython. Ejemplos de widgets completos y comentados, totalmente funcionales. Disponible para Linux, Windows y Mac.
wxPython De
o2 y ((
widgets... richtextctrl
widgets... toolboo5
widgets... listboo5
widgets... speed
eter
widgets... +latnoteboo5
atelistctrl
widgets... pea5
eter
7idgets... piectrl
widgets... ribbonbar
widgets... aui
8i&ers
Los widgets pueden disponerse con wx.Point y wx.Size, mediante coordenadas. Sizer: Mecanismo de disposicin de widgets en wxPython.
Maneja el tamao y posicin 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 aadirse por separado al sizer. El sizer administra la posicin de los widgets.
8i&ers
Un sizer en wxPython es un objeto con el nico propsito de administrar el posicionamiento de un conjunto de widgets dentro de un contenedor. El sizer es la representacin 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.
8i&ers
UNA LOCURA Utilizar aplicaciones de diseo de pantallas con generacin automtica de cdigo Python y wxPython.
Alguna solucin?
wx9or
6uilder2 y :
Entorno WYSIWYG para diseo grfico de interfaces para wxWidgets. Posibilidad de generar cdigo Python. Contiene muchos widgets. Trabajar con sizers en wxFormBuilder es muy f cil. http://wxformbuilder.org/ Tutorial: wxFormBuilder en El Viaje del Navegante
wx9or
6uilder2 y ;
wx9or
6uilder2 y <