Celia Clemente Castillo Lara Fajardo Ibáñez Valentín Cruz Rodríguez Amanda Garci Núñez Software de Comunicaciones 2007-2008 1 Introducción • Python es un lenguaje de programación dinámico y orientado a objetos. • El principal objetivo que persigue este lenguaje es la facilidad, tanto de lectura, como de diseño. • Es de libre distribución • Python se usa en grandes plataformas como: Software de Comunicaciones 2007-2008 2 Un poco de historia • Fue creado por Guido van Rossum en el año 1990. • Surgió como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el SO Amoeba. • Monty Python Software de Comunicaciones 2007-2008 3 Características • Python es un lenguaje de programación multiparadigma, permite varios estilos: programación orientada a objetos, programación estructural y funcional. • Python se desarrolla como un proyecto de código abierto, administrado por la Python Software Foundation. • Gran soporte e integración con otros lenguajes y herramientas. • Tiene integradas varias bibliotecas estándar. Software de Comunicaciones 2007-2008 4 Ventajas y Desventajas • Ventajas: • Rápido de desarrollar. • Sencillez y velocidad. • Sus bibliotecas hacen gran parte del trabajo. • Soporta varias bases de datos. • Desventajas: • Los programas interpretados son más lentos que los compilados. Software de Comunicaciones 2007-2008 5 Cuestiones de Diseño (I) • Declaraciones indentadas (no {}). • Utilización de “:” para las estructuras if/while/def/class (claridad en la lectura). • Cálculos en punto flotante. • Variables inmutables (strings, tuplas, números y None). Software de Comunicaciones 2007-2008 6 Cuestiones de Diseño (II) Cue • Para emular hilos se requiere soporte para C. (Stackless Python). • Python puede ser compilado en otros lenguajes (Jython → Java). • Listas y tuplas (mutables e inmutables) • No hay estructuras goto. • Bloques de excepciones rápidos y eficientes. • No existen switch ni case → estructruras if...else if...else Software de Comunicaciones 2007-2008 7 Cuestiones de Diseño (III) • Gestión de memoria implementación. dependiente de la • Periódicamente se ejecutan algoritmos de detección de bucles inaccesibles para borrar los objetos involucrados. • Diccionarios implementados como tablas hash. • No se pueden emplear asignaciones en las expresiones (p.e. while(line = readline()))... Software de Comunicaciones 2007-2008 • Funciones lambda. 8 Uso de Python • Fuente: http://www.python.org/download • Documentación: http://www.python.org/doc Ejemplos: Software de Comunicaciones 2007-2008 9 Entornos de Desarrollo • Editores de texto • Emacs • VIM • SciTE • IDEs • IDLE • Eric • Eclipse y PyDev Software de Comunicaciones 2007-2008 • IPython 10 Desarrollo Web con Python (I) • PSP (Python Server Pages) Software de Comunicaciones 2007-2008 – Páginas Web Dinámicas – Estructura similar a JSP – Tiene cuatro tipo de entidades: • Código: <% … %> • Expresión: <%= … %> • Directivas: <%@ … %> • Comentrarios: <%-- … --%> – Los archivos .psp pueden alojarse en un servidor Web o en uno de aplicaciones 11 Desarrollo Web con Python (II) • Webware – Es un framework de desarrollo para aplicaciones web Python. – Posee un servidor de aplicaciones similar a Tomcat, pero escrito y pensado en Python – Sus funcionalidades se dividen en módulos: • • • • Software de Comunicaciones 2007-2008 WebKit Python Server Pages Kit MiddleKit UserKit 12 Desarrollo Web con Python (III) • MVC con Webware Software de Comunicaciones 2007-2008 13 ¿Preguntas? Software de Comunicaciones 2007-2008 14