python programming learning

1,849 views

Published on

prueba

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,849
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
42
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

python programming learning

  1. 1. Python Training Course Wilderman Ceren Ingeniero de Sistemas – Especialista en Telecomunicaciones Consultor y experto en soluciones informáticas basadas en software libre
  2. 2. Perfil profesional (Unix/POSIX) <ul><li>Desarrollo de Software </li></ul><ul><ul><li>LAMP, Python (Bindings),PERL, BASH, Fortran, algo de C,C++,Java,Tomcat,XML, webservices (SOAP, XML-RPC). </li></ul></ul><ul><ul><li>BD> MySQL, PostgreSQL, sqlite, BerkeleyDB </li></ul></ul><ul><li>Redes </li></ul><ul><ul><li>Enrutamiento, Interoperabilidad entre dispositivos propietarios y libres, sistemas embebidos, firewalls, IDS. </li></ul></ul><ul><li>Sistemas distribuidos </li></ul><ul><ul><li>Implementación de clusters de alto rendimiento (HPC) y alta disponibilidad (HA). </li></ul></ul>
  3. 3. Perfil profesional (Unix/POSIX) <ul><li>Administración de servidores y recursos </li></ul><ul><ul><li>GNU/Linux (debian, gentoo, RHEL, ubuntu, otros) </li></ul></ul><ul><ul><li>FreeBSD, OpenBSD & NetBSD. </li></ul></ul><ul><ul><li>Seguridad en Embebidos: m0n0wall, pfSense </li></ul></ul><ul><li>Seguridad </li></ul><ul><ul><li>OpenLDAP, Kerberos,OpenVPN, FreeRADIUS </li></ul></ul>
  4. 4. Contenido <ul><li>Que puedo hacer con Python ? </li></ul><ul><li>Puntos técnicos fuertes </li></ul><ul><li>El intérprete </li></ul><ul><li>Implementación alternativa </li></ul><ul><ul><li>Cpython </li></ul></ul><ul><ul><li>Jython </li></ul></ul><ul><ul><li>IronPython </li></ul></ul><ul><li>Corriendo programas en Python </li></ul>
  5. 5. Contenido <ul><li>Tipos de Objetos </li></ul><ul><ul><li>Integrados (built-in) </li></ul></ul><ul><ul><li>Numeros </li></ul></ul><ul><ul><li>Cadenas </li></ul></ul><ul><ul><li>Listas </li></ul></ul><ul><ul><li>Diccionarios </li></ul></ul><ul><ul><li>Tuplas </li></ul></ul><ul><ul><li>Archivos </li></ul></ul><ul><ul><li>Otros </li></ul></ul>
  6. 6. Contenido <ul><li>7. Números </li></ul><ul><ul><li>Literales numericos </li></ul></ul><ul><ul><li>Operadores </li></ul></ul><ul><ul><li>Variables y Expresiones basicas </li></ul></ul><ul><ul><li>Formatos de visualiz. Numerico </li></ul></ul><ul><ul><li>Division (classic y floor) </li></ul></ul><ul><ul><li>Operaciones Bitwise </li></ul></ul><ul><ul><li>Entero Largo </li></ul></ul><ul><ul><li>Número complejo </li></ul></ul>
  7. 7. Contenido <ul><li>Números </li></ul><ul><ul><li>Otros tipos numericos </li></ul></ul><ul><ul><ul><li>Decimales </li></ul></ul></ul><ul><ul><ul><li>Sets </li></ul></ul></ul><ul><ul><ul><li>Booleans </li></ul></ul></ul><ul><ul><ul><li>Extensiones de terceros </li></ul></ul></ul><ul><li>Cadenas </li></ul><ul><ul><li>Literales </li></ul></ul><ul><ul><li>Operaciones Basicas </li></ul></ul>
  8. 8. Contenido <ul><ul><li>Indexado y Cortado (indexing and slicing) </li></ul></ul><ul><ul><li>Herram. De Conversion </li></ul></ul><ul><ul><li>Formateo de Cadenas </li></ul></ul><ul><ul><li>Métodos </li></ul></ul><ul><ul><li>Categorias de tipo general </li></ul></ul><ul><li>Listas </li></ul><ul><ul><li>Operaciones basicas </li></ul></ul><ul><ul><li>Indexado, Cortado y Matrices </li></ul></ul><ul><ul><li>Mutabilidad </li></ul></ul>
  9. 9. Contenido <ul><li>Diccionarios </li></ul><ul><ul><li>Operaciones basicas </li></ul></ul><ul><ul><li>Mutabilidad </li></ul></ul><ul><ul><li>Usos </li></ul></ul><ul><li>Tuplas </li></ul><ul><ul><li>Sintaxis </li></ul></ul><ul><ul><li>Conversiones e inmutabilidad </li></ul></ul><ul><ul><li>Por que Listas y Tuplas? </li></ul></ul>
  10. 10. Contenido <ul><li>Archivos </li></ul><ul><ul><li>Objetos en archivos </li></ul></ul><ul><ul><li>Pickle </li></ul></ul><ul><ul><li>Otras herramientas de archivo </li></ul></ul><ul><ul><li>Tipos de Categoria </li></ul></ul><ul><ul><li>Jerarquia de Tipos </li></ul></ul><ul><ul><li>Otros tipos </li></ul></ul><ul><ul><li>Tipos Built-in </li></ul></ul>
  11. 11. Contenido <ul><li>Sentencias en Python </li></ul><ul><ul><li>Sintaxis a partir de sangrías </li></ul></ul><ul><ul><li>Casos especiales </li></ul></ul><ul><li>Loops interactivos </li></ul><ul><ul><li>Manejo de errores con entrada de texto </li></ul></ul><ul><ul><li>Manejo de errores con sentencias try </li></ul></ul><ul><ul><li>Anidado de codigo a tres niveles de profundidad </li></ul></ul><ul><li>Sentencias de asignación </li></ul>
  12. 12. Contenido <ul><ul><li>Asignando en secuencia </li></ul></ul><ul><ul><li>Asignación múltiple </li></ul></ul><ul><ul><li>Asignación aumentada </li></ul></ul><ul><ul><li>Reglas para nombrar variables </li></ul></ul><ul><ul><li>Sentencias en expresiones </li></ul></ul><ul><ul><li>Cambios en el mismo lugar </li></ul></ul><ul><li>Sentencias print </li></ul><ul><ul><li>Redirigiendo el flujo de salida </li></ul></ul>
  13. 13. Contenido <ul><li>Sentencias if </li></ul><ul><ul><li>Ejemplo basico </li></ul></ul><ul><ul><li>Multi-ramificación con if – elif </li></ul></ul><ul><ul><li>Reglas para sintaxis python </li></ul></ul><ul><ul><li>Delimitadores de bloque </li></ul></ul><ul><ul><li>Delimitadores en sentencias </li></ul></ul><ul><ul><li>Casos especiales </li></ul></ul><ul><ul><li>Tests de verdad </li></ul></ul><ul><ul><li>Expresion ternaria ( if/else ) </li></ul></ul>
  14. 14. Contenido <ul><li>Loops while y for </li></ul><ul><ul><li>break , continue, pass, break y else </li></ul></ul><ul><ul><li>Iterators </li></ul></ul><ul><ul><li>Iterators a nivel de archivo </li></ul></ul><ul><ul><li>Otros iterators embebidos (built-in) & user-defined </li></ul></ul><ul><ul><li>Técnicas para codificar loops </li></ul></ul><ul><ul><li>Usos de range, zip y map </li></ul></ul><ul><ul><li>Generación de offsets e items con enumerate </li></ul></ul>
  15. 15. Contenido <ul><li>Comprensión de lista </li></ul><ul><ul><li>En archivos </li></ul></ul><ul><ul><li>Sintaxis extendida </li></ul></ul><ul><li>Documentación del código fuente </li></ul><ul><ul><li>comentarios (#) </li></ul></ul><ul><ul><li>función dir </li></ul></ul><ul><ul><li>Docstrings: __doc__ </li></ul></ul><ul><ul><ul><li>definido por el usuario </li></ul></ul></ul><ul><ul><ul><li>estandar </li></ul></ul></ul><ul><ul><ul><li>integrado </li></ul></ul></ul>
  16. 16. Contenido <ul><ul><li>PyDoc: Función de ayuda </li></ul></ul><ul><li>Funciones </li></ul><ul><ul><li>Para que utilizar funciones ? </li></ul></ul><ul><ul><li>Codificación de una función </li></ul></ul><ul><ul><ul><li>Sentencia def </li></ul></ul></ul><ul><ul><ul><li>Definición </li></ul></ul></ul><ul><ul><ul><li>Llamadas </li></ul></ul></ul><ul><ul><li>Polimorfismo en Python </li></ul></ul><ul><ul><li>Variables locales </li></ul></ul>
  17. 17. Contenido <ul><li>Alcance y argumentos </li></ul><ul><ul><li>Reglas en el alcance ( scope ) </li></ul></ul><ul><ul><li>Conceptos Básicos del alcance </li></ul></ul><ul><ul><li>Ejemplos </li></ul></ul><ul><ul><li>Alcance integrado </li></ul></ul><ul><ul><li>La sentencia global </li></ul></ul><ul><ul><li>Minimizar uso de variables globales </li></ul></ul><ul><ul><li>Minimizar cambios en archivo cruzado </li></ul></ul><ul><ul><li>Otras formas de accesar globalmente </li></ul></ul><ul><ul><li>Alcances y funciones anidadas </li></ul></ul>
  18. 18. Contenido <ul><ul><li>Pasando argumentos </li></ul></ul><ul><ul><li>Argumentos y referencias compartidas </li></ul></ul><ul><ul><li>Evitando los cambios mutables en argumentos </li></ul></ul><ul><ul><li>Simulando parámetros de salida </li></ul></ul><ul><ul><li>Modos de concordancia de argumentos </li></ul></ul><ul><ul><li>Valores default y keyword </li></ul></ul><ul><ul><li>Argumentos arbitrarios </li></ul></ul><ul><ul><li>Combinando keywords y default </li></ul></ul><ul><ul><li>Ejemplo general de uso de funciones </li></ul></ul>
  19. 19. Contenido <ul><li>Funciones Avanzadas </li></ul><ul><ul><li>Funciones anónimas: lambda </li></ul></ul><ul><ul><ul><li>Expresiones lambda </li></ul></ul></ul><ul><ul><ul><li>Por que usar lambda ? </li></ul></ul></ul><ul><ul><ul><li>lambdas anidados y alcances </li></ul></ul></ul><ul><ul><li>Aplicando funciones a argumentos </li></ul></ul><ul><ul><ul><li>comando apply </li></ul></ul></ul><ul><ul><ul><li>Sintaxis de llamada similar a apply </li></ul></ul></ul><ul><ul><li>Mapeando funciones sobre secuencias: map </li></ul></ul><ul><ul><li>Uso de filter y reduce </li></ul></ul>
  20. 20. Contenido <ul><ul><li>Comprensión de lista: Mappings </li></ul></ul><ul><ul><li>Conceptos básicos </li></ul></ul><ul><ul><li>Añadiendo tests y loops anidados </li></ul></ul><ul><ul><li>Comprensión de lista y matrices </li></ul></ul><ul><ul><li>Iterators: Generators </li></ul></ul><ul><ul><ul><li>Protocolo Función Generator Extendida: send y next </li></ul></ul></ul><ul><ul><ul><li>Iteratores y tipos de datos integrados </li></ul></ul></ul><ul><ul><li>Alternativas en la coordinación en iteraciónes </li></ul></ul><ul><ul><li>Conceptos en el diseño de funciones </li></ul></ul><ul><ul><li>Funciones son objetos: llamadas indirectas </li></ul></ul><ul><ul><li>Tips en Funciones (Para tener en cuenta) </li></ul></ul>
  21. 21. Contenido <ul><ul><ul><li>Nombres locales detectado estáticamente </li></ul></ul></ul><ul><ul><ul><li>Objetos default y mutables </li></ul></ul></ul><ul><ul><ul><li>Funciones sin retorno alguno </li></ul></ul></ul><ul><li>Módulos </li></ul><ul><ul><li>Por que utilizar módulos ? </li></ul></ul><ul><ul><li>Arquitectura de un programa en Python </li></ul></ul><ul><ul><ul><li>Cómo estructurar un programa </li></ul></ul></ul><ul><ul><ul><li>Imports y Atributos </li></ul></ul></ul><ul><ul><ul><li>Módulos de la libreria estándar </li></ul></ul></ul><ul><ul><li>Cómo trabaja import </li></ul></ul>
  22. 22. Contenido <ul><ul><ul><li>Programar un módulo </li></ul></ul></ul><ul><ul><ul><ul><li>Creación </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Uso (import, from) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Namespaces </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Recargar un módulo </li></ul></ul></ul></ul><ul><ul><ul><li>Paquetes </li></ul></ul></ul><ul><ul><ul><ul><li>Import </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Por que utilizar import de paquete? </li></ul></ul></ul></ul><ul><ul><ul><li>Conceptos Avanzados en módulos </li></ul></ul></ul><ul><ul><ul><ul><li>Ocultando datos </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Habilitando futuras caracteristicas </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mezclando modos de uso </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Import Relativo </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Conceptos en diseño de módulos </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Gotchas </li></ul></ul></ul></ul>
  23. 23. Contenido <ul><li>Clases y POO </li></ul><ul><ul><li>Generalidades </li></ul></ul><ul><ul><li>Programando clases </li></ul></ul><ul><ul><li>Programando clases II </li></ul></ul><ul><ul><ul><li>Sentencia Clase </li></ul></ul></ul><ul><ul><ul><li>Métodos </li></ul></ul></ul><ul><ul><ul><li>Herencia </li></ul></ul></ul><ul><ul><ul><li>Operador de Sobrecarga </li></ul></ul></ul><ul><ul><ul><li>Iteraciónes definida por el usuario </li></ul></ul></ul><ul><ul><ul><li>Privacidad para los atributos en instancias </li></ul></ul></ul>
  24. 24. Contenido <ul><ul><ul><li>Namespaces </li></ul></ul></ul><ul><ul><li>Diseño con clases </li></ul></ul><ul><ul><ul><li>Python y POO </li></ul></ul></ul><ul><ul><ul><li>Clases como registros </li></ul></ul></ul><ul><ul><ul><li>POO y herencia: relaciones “Is-a” </li></ul></ul></ul><ul><ul><ul><li>POO y composición: relaciones “Has-a” </li></ul></ul></ul><ul><ul><ul><li>POO y delegación </li></ul></ul></ul><ul><ul><ul><li>Herencia múltiple </li></ul></ul></ul><ul><ul><ul><li>Clases son objetos: Generic Factories </li></ul></ul></ul><ul><ul><ul><li>Métodos son objetos: Bound o unbound </li></ul></ul></ul><ul><ul><ul><li>Revisión a la Docmentación con Strings </li></ul></ul></ul>
  25. 25. Contenido <ul><ul><li>Diseño con clases </li></ul></ul><ul><ul><ul><li>Clases Vs Modulos </li></ul></ul></ul><ul><ul><li>Topicos avanzados en clases </li></ul></ul><ul><ul><ul><li>Extendiendo tipos de datos “Built-in” </li></ul></ul></ul><ul><ul><ul><li>Atributos para clase “seudoprivada” </li></ul></ul></ul><ul><ul><ul><li>Nuevo estilo para clases </li></ul></ul></ul><ul><ul><ul><li>Static y métodos de clase </li></ul></ul></ul><ul><ul><ul><li>Función “decorators” </li></ul></ul></ul><ul><ul><ul><li>Gotchas (Tips) </li></ul></ul></ul>
  26. 26. Contenido <ul><li>Excepciones y Tools </li></ul><ul><ul><li>Conceptos básicos </li></ul></ul><ul><ul><ul><li>Por que las excepciones (roles) </li></ul></ul></ul><ul><ul><ul><li>Manejo de Excepciones </li></ul></ul></ul><ul><ul><ul><li>Sentencia try/except/else </li></ul></ul></ul><ul><ul><ul><li>Sentencia try/finally </li></ul></ul></ul><ul><ul><ul><li>Unificado try/except </li></ul></ul></ul><ul><ul><ul><li>Sentencia raise </li></ul></ul></ul><ul><ul><ul><li>Sentencia assert </li></ul></ul></ul><ul><ul><li>Objetos Exception </li></ul></ul><ul><ul><ul><li>Excepciones basadas en String </li></ul></ul></ul>
  27. 27. Contenido <ul><ul><li>Objetos Exception </li></ul></ul><ul><ul><ul><li>Excepcion basada en clase </li></ul></ul></ul><ul><ul><ul><li>formas y sentencias generales raise </li></ul></ul></ul><ul><ul><li>Diseño con Excepciones </li></ul></ul><ul><ul><ul><li>Excepciones anidadas ( nesting exception ) </li></ul></ul></ul><ul><ul><ul><li>Lenguajes en excepciones </li></ul></ul></ul><ul><ul><ul><li>Tips para diseño de Excepciones </li></ul></ul></ul><ul><ul><ul><li>Gotchas </li></ul></ul></ul><ul><ul><ul><li>Resumen del “Core” </li></ul></ul></ul><ul><ul><ul><ul><li>Python Toolset </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Desarrollo de Tools para proyectos grandes </li></ul></ul></ul></ul>
  28. 28. Introducción <ul><li>Por que la gente usa Python </li></ul><ul><ul><li>Calidad del Software * </li></ul></ul><ul><ul><li>Productividad ** </li></ul></ul><ul><ul><li>Portabilidad </li></ul></ul><ul><ul><li>Librerias de soporte </li></ul></ul><ul><ul><li>Integración de componentes </li></ul></ul><ul><ul><li>Se disfruta! </li></ul></ul>
  29. 29. Quienes usan Python? <ul><li>Google </li></ul><ul><li>YouTube </li></ul><ul><li>BitTorrent </li></ul><ul><li>Intel, Cisco, HP, Seagate, Qualcomm </li></ul><ul><li>Pixar </li></ul><ul><li>Nasa </li></ul><ul><li>ESRI (GIS) </li></ul><ul><li>NSA </li></ul><ul><li>OLPC </li></ul>
  30. 30. 1. Que puedo hacer con Python? <ul><li>Scripting y software “standalone” </li></ul><ul><li>Lenguaje de Propósito General </li></ul><ul><li>Web, Juegos, Robótica, Aeronáutica </li></ul><ul><li>Programación a nivel de SO. </li></ul><ul><li>GUIs (Tkinter, wxPython) </li></ul><ul><li>PythonCard – Dabo </li></ul><ul><li>Otros GUIs: Qt, GTK, MFC, Swing </li></ul><ul><li>Jython & servicios Python CGI </li></ul>
  31. 31. 1. Que puedo hacer con Python? <ul><li>Internet Scripting </li></ul><ul><li>Integración de componentes (C,C++, COM (MSWin), Jython, .NET (IronPython), CORBA) </li></ul><ul><li>Base de Datos (Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite, BDB, Firebird) </li></ul><ul><li>Rápido en Prototipos hacia C/C++ </li></ul><ul><li>Programación Numérica y Científica (Numpy) </li></ul><ul><li>Juegos, Imagenes, AI, XML, Robotica ... y más! </li></ul>
  32. 32. 2. Puntos técnicos fuertes <ul><li>Orientado a Objetos </li></ul><ul><ul><li>Polimorfismo, Sobrecarga, multi herencia </li></ul></ul><ul><ul><li>POO es una opción (no es mandatoria) </li></ul></ul><ul><li>Es libre de usar, distribuir y es soportado! </li></ul><ul><li>Es portable </li></ul><ul><ul><li>Linux/Unix, Windows/DOS, Mac OS X, BeOS, OS/2 </li></ul></ul><ul><ul><li>Sistemas de Tiempo Real (VxWorks) </li></ul></ul><ul><ul><li>Cray – IBM mainframes </li></ul></ul><ul><ul><li>PDAs, Celulares con Symbian/Windows Mobile </li></ul></ul><ul><ul><li>Consolas de juego, iPods y mas... </li></ul></ul>
  33. 33. 2. Puntos técnicos fuertes <ul><li>Es poderoso </li></ul><ul><ul><li>Híbrido (se integra con lenguajes “ scripting ” Perl,TCL y tradicionales como C/C++) </li></ul></ul><ul><ul><li>Tipificación dinámica (no declaración previa) </li></ul></ul><ul><ul><li>Manejo automático de memoria </li></ul></ul><ul><ul><li>Se programa en proyectos largos y complejos (uso de módulos, clases y excepciones) </li></ul></ul><ul><ul><li>Objeto tipos “Built-in” </li></ul></ul><ul><ul><li>Tools “Built-in” </li></ul></ul><ul><ul><li>Utilidades desde terceros </li></ul></ul>
  34. 34. 2. Puntos técnicos fuertes <ul><li>Es mezclable con otros lenguajes </li></ul><ul><ul><li>Python API permite a rutinas C ser llamadas desde python mismo. </li></ul></ul><ul><ul><li>Se puede prototipear en Python y luego llevarlo a C/C++ una vez al tiempo. </li></ul></ul><ul><li>Facilidad de uso </li></ul><ul><ul><li>codificalo y correlo de una! </li></ul></ul><ul><li>Fácil de aprender </li></ul><ul><li>Su nombre viene de Monty Python's Flying Circus </li></ul>
  35. 35. 3. El intérprete <ul><li>Es una clase de programa que invoca otro programa. </li></ul><ul><li>Es la capa lógica de software entre el código y el hw de computadora. </li></ul><ul><li>Auto-Instala en Windows (Click->Siguiente) </li></ul><ul><li>Linux/Mac OS X preinstalado?, compilan fuente o packs RPM/DEB </li></ul><ul><li>Disponibilidad: iPod, consolas de juego, celulares </li></ul>
  36. 36. 3. El intérprete <ul><li>Ejecución de programa </li></ul><ul><ul><li>Archivo de texto simple con sentencias: </li></ul></ul><ul><ul><ul><li>print 'hola mundo' </li></ul></ul></ul><ul><ul><ul><li>print 2 ** 100 </li></ul></ul></ul><ul><ul><li>Generar con cualquier editor de texto </li></ul></ul><ul><ul><ul><li>Extensión .py </li></ul></ul></ul><ul><ul><li>> Python script1.py </li></ul></ul><ul><ul><ul><li>hola mundo </li></ul></ul></ul><ul><ul><ul><li>1267650600228229401496703205376 </li></ul></ul></ul>
  37. 37. 3. El intérprete <ul><li>Ejecución vista desde Python: </li></ul><ul><ul><li>Archivo Texto Fuente -> Intérprete -> byte code -> maquina virtual </li></ul></ul><ul><ul><li>Extension .pyc : archivo byte code (binario) </li></ul></ul><ul><li>Python Virtual Machine (PVM): </li></ul><ul><ul><li>Es un “big loop” ke interactua entre las instr. bytecode </li></ul></ul><ul><ul><li>Es sólo una parte del sistema ke conforma python. </li></ul></ul>
  38. 38. 3. El intérprete <ul><ul><li>Implicaciones en el rendimiento </li></ul></ul><ul><ul><ul><li>C/C++ mas eficientes en la corrida o ejecución </li></ul></ul></ul><ul><ul><ul><li>Bytecode es una represent. python no código maquina </li></ul></ul></ul><ul><ul><ul><li>Código se ejecuta a medida. que se escribe </li></ul></ul></ul><ul><ul><ul><li>Bytecode sigue interpret. Y requiere mas CPU </li></ul></ul></ul><ul><ul><li>Implicaciones en el desarrollo </li></ul></ul><ul><ul><ul><li>Entorno Desarrollo & Ejecución son iguales </li></ul></ul></ul><ul><ul><ul><li>Compilador presente en runtime </li></ul></ul></ul><ul><ul><ul><li>No Compilar -> Enlazar, solo haga y ejecute! </li></ul></ul></ul><ul><ul><ul><li>Todo sucede cuando se ejecuta el code </li></ul></ul></ul>
  39. 39. 4. Implementaciones Alternativas <ul><li>Cpython </li></ul><ul><ul><li>Portar código Python a C ANSI (ActivePython distro) </li></ul></ul><ul><ul><li>Implementación estandar de referencia del lenguaje </li></ul></ul><ul><li>Jython </li></ul><ul><ul><li>Integración con Java (scripts corren como java apps) </li></ul></ul><ul><ul><li>Clases Java que portan el código python a la JVM. </li></ul></ul>
  40. 40. 4. Implementaciones Alternativas <ul><li>IronPython </li></ul><ul><ul><li>Permite a scripts python integrarse con aplicaciones codificadas para correr sobre .NET Framework </li></ul></ul><ul><ul><li>Actúa como componente cliente/servidor para ser invocado por otros lenguajes .NET </li></ul></ul><ul><ul><li>Desarrollado por Microsoft (propietario de .NET) </li></ul></ul>
  41. 41. 5. Ejecutando Python scripts: Modo Interactivo <ul><li>Despues de estar instalado apropiadamente ejecutar desde el prompt (win32 o unix): python </li></ul><ul><li>Si deseas ejecutarlo desde cualquier sitio, agregarlo a la variable de entorno PATH (unix) /usr/bin/python o PATH (win32) asi C:Python25python </li></ul><ul><li>Prompt: >>> {command line} </li></ul>
  42. 42. 5. Ejecutando Python scripts: Modo Interactivo <ul><li>>>> print 'Hola mundo!' Hola mundo! </li></ul><ul><li>>>> print 2**8 256 </li></ul><ul><li>Para salir del interprete: unix -> CTRL+D, win32 -> CTRL+Z </li></ul><ul><li>Para saber valor de variables no es necesario utilizar print </li></ul><ul><li>Ejecuta instrucción a instrucción y no necesita cargar script completo . </li></ul>
  43. 43. 5. Ejecutando Python scripts: Modo Interactivo <ul><li>Sirve para experimentar el lenguaje y utilizarlo para comprobar porciones de código </li></ul>

×