python programming learning

Download python programming learning

If you can't read please download the document

Upload: m0n0lithic

Post on 31-May-2015

1.718 views

Category:

Documents


5 download

DESCRIPTION

prueba

TRANSCRIPT

  • 1. Python Training Course Wilderman Ceren Ingeniero de Sistemas Especialista en Telecomunicaciones Consultor y experto en soluciones informticas basadas en software libre

2. Perfil profesional (Unix/POSIX)

  • Desarrollo de Software
    • LAMP, Python (Bindings),PERL, BASH, Fortran, algo de C,C++,Java,Tomcat,XML, webservices (SOAP, XML-RPC).
    • BD> MySQL, PostgreSQL, sqlite, BerkeleyDB
  • Redes
    • Enrutamiento, Interoperabilidad entre dispositivos propietarios y libres, sistemas embebidos, firewalls, IDS.
  • Sistemas distribuidos
    • Implementacin de clusters de alto rendimiento (HPC) y alta disponibilidad (HA).

3. Perfil profesional (Unix/POSIX)

  • Administracin de servidores y recursos
    • GNU/Linux (debian, gentoo, RHEL, ubuntu, otros)
    • FreeBSD, OpenBSD & NetBSD.
    • Seguridad en Embebidos: m0n0wall, pfSense
  • Seguridad
    • OpenLDAP, Kerberos,OpenVPN, FreeRADIUS

4. Contenido

  • Que puedo hacer con Python ?
  • Puntos tcnicos fuertes
  • El intrprete
  • Implementacin alternativa
    • Cpython
    • Jython
    • IronPython
  • Corriendo programas en Python

5. Contenido

  • Tipos de Objetos
    • Integrados (built-in)
    • Numeros
    • Cadenas
    • Listas
    • Diccionarios
    • Tuplas
    • Archivos
    • Otros

6. Contenido

  • 7. Nmeros
    • Literales numericos
    • Operadores
    • Variables y Expresiones basicas
    • Formatos de visualiz. Numerico
    • Division (classic y floor)
    • Operaciones Bitwise
    • Entero Largo
    • Nmero complejo

7. Contenido

  • Nmeros
    • Otros tipos numericos
      • Decimales
      • Sets
      • Booleans
      • Extensiones de terceros
  • Cadenas
    • Literales
    • Operaciones Basicas

8. Contenido

    • Indexado y Cortado (indexing and slicing)
    • Herram. De Conversion
    • Formateo de Cadenas
    • Mtodos
    • Categorias de tipo general
  • Listas
    • Operaciones basicas
    • Indexado, Cortado y Matrices
    • Mutabilidad

9. Contenido

  • Diccionarios
    • Operaciones basicas
    • Mutabilidad
    • Usos
  • Tuplas
    • Sintaxis
    • Conversiones e inmutabilidad
    • Por que Listas y Tuplas?

10. Contenido

  • Archivos
    • Objetos en archivos
    • Pickle
    • Otras herramientas de archivo
    • Tipos de Categoria
    • Jerarquia de Tipos
    • Otros tipos
    • Tipos Built-in

11. Contenido

  • Sentencias en Python
    • Sintaxis a partir de sangras
    • Casos especiales
  • Loops interactivos
    • Manejo de errores con entrada de texto
    • Manejo de errores con sentenciastry
    • Anidado de codigo a tres niveles de profundidad
  • Sentencias de asignacin

12. Contenido

    • Asignando en secuencia
    • Asignacin mltiple
    • Asignacin aumentada
    • Reglas para nombrar variables
    • Sentencias en expresiones
    • Cambios en el mismo lugar
  • Sentenciasprint
    • Redirigiendo el flujo de salida

13. Contenido

  • Sentenciasif
    • Ejemplo basico
    • Multi-ramificacinconif elif
    • Reglas para sintaxis python
    • Delimitadores de bloque
    • Delimitadores en sentencias
    • Casos especiales
    • Tests de verdad
    • Expresion ternaria ( if/else )

14. Contenido

  • Loopswhileyfor
    • break ,continue, pass, breakyelse
    • Iterators
    • Iterators a nivel de archivo
    • Otros iterators embebidos (built-in) & user-defined
    • Tcnicas para codificarloops
    • Usos derange, zipymap
    • Generacin de offsets e items conenumerate

15. Contenido

  • Comprensin de lista
    • En archivos
    • Sintaxis extendida
  • Documentacin del cdigo fuente
    • comentarios (#)
    • funcindir
    • Docstrings: __doc__
      • definido por el usuario
      • estandar
      • integrado

16. Contenido

    • PyDoc: Funcin de ayuda
  • Funciones
    • Para que utilizar funciones ?
    • Codificacin de una funcin
      • Sentenciadef
      • Definicin
      • Llamadas
    • Polimorfismo en Python
    • Variables locales

17. Contenido

  • Alcance y argumentos
    • Reglas en el alcance ( scope )
    • Conceptos Bsicos del alcance
    • Ejemplos
    • Alcance integrado
    • La sentencia global
    • Minimizar uso de variables globales
    • Minimizar cambios en archivo cruzado
    • Otras formas de accesar globalmente
    • Alcances y funciones anidadas

18. Contenido

    • Pasando argumentos
    • Argumentos y referencias compartidas
    • Evitando los cambios mutables en argumentos
    • Simulando parmetros de salida
    • Modos de concordancia de argumentos
    • Valoresdefaultykeyword
    • Argumentos arbitrarios
    • Combinandokeywordsydefault
    • Ejemplo general de uso de funciones

19. Contenido

  • Funciones Avanzadas
    • Funciones annimas:lambda
      • Expresioneslambda
      • Por que usarlambda?
      • lambdasanidadosy alcances
    • Aplicando funciones a argumentos
      • comandoapply
      • Sintaxis de llamada similaraapply
    • Mapeando funciones sobre secuencias:map
    • Uso defilteryreduce

20. Contenido

    • Comprensin de lista:Mappings
    • Conceptos bsicos
    • Aadiendo tests y loops anidados
    • Comprensin de lista y matrices
    • Iterators:Generators
      • Protocolo Funcin Generator Extendida:sendynext
      • Iteratores y tipos de datos integrados
    • Alternativas en la coordinacin en iteracines
    • Conceptos en el diseo de funciones
    • Funciones son objetos: llamadas indirectas
    • Tips en Funciones (Para tener en cuenta)

21. Contenido

      • Nombres locales detectado estticamente
      • Objetos default y mutables
      • Funciones sin retorno alguno
  • Mdulos
    • Por que utilizar mdulos ?
    • Arquitectura de un programa en Python
      • Cmo estructurar un programa
      • Importsy Atributos
      • Mdulos de la libreria estndar
    • Cmo trabajaimport

22. Contenido

      • Programar un mdulo
        • Creacin
        • Uso (import, from)
        • Namespaces
        • Recargar un mdulo
      • Paquetes
        • Import
        • Por que utilizar import de paquete?
      • Conceptos Avanzados en mdulos
        • Ocultando datos
        • Habilitando futuras caracteristicas
        • Mezclando modos de uso
        • Import Relativo
        • Conceptos en diseo de mdulos
        • Gotchas

23. Contenido

  • Clases y POO
    • Generalidades
    • Programando clases
    • Programando clases II
      • Sentencia Clase
      • Mtodos
      • Herencia
      • Operador de Sobrecarga
      • Iteracines definida por el usuario
      • Privacidad para los atributos en instancias

24. Contenido

      • Namespaces
    • Diseo con clases
      • Python y POO
      • Clases como registros
      • POO y herencia: relaciones Is-a
      • POO y composicin: relaciones Has-a
      • POO y delegacin
      • Herencia mltiple
      • Clases son objetos: Generic Factories
      • Mtodos son objetos: Bound o unbound
      • Revisin a la Docmentacin con Strings

25. Contenido

    • Diseo con clases
      • Clases Vs Modulos
    • Topicos avanzados en clases
      • Extendiendo tipos de datos Built-in
      • Atributos para clase seudoprivada
      • Nuevo estilo para clases
      • Static y mtodos de clase
      • Funcin decorators
      • Gotchas (Tips)

26. Contenido

  • Excepciones y Tools
    • Conceptos bsicos
      • Por que las excepciones (roles)
      • Manejo de Excepciones
      • Sentenciatry/except/else
      • Sentenciatry/finally
      • Unificadotry/except
      • Sentenciaraise
      • Sentenciaassert
    • ObjetosException
      • Excepciones basadas en String

27. Contenido

    • ObjetosException
      • Excepcion basada en clase
      • formas y sentencias generalesraise
    • Diseo con Excepciones
      • Excepciones anidadas ( nesting exception )
      • Lenguajes en excepciones
      • Tips para diseo de Excepciones
      • Gotchas
      • Resumen delCore
        • PythonToolset
        • Desarrollo deToolspara proyectos grandes

28. Introduccin

  • Por que la gente usa Python
    • Calidad del Software *
    • Productividad **
    • Portabilidad
    • Librerias de soporte
    • Integracin de componentes
    • Se disfruta!

29. Quienes usan Python?

  • Google
  • YouTube
  • BitTorrent
  • Intel, Cisco, HP, Seagate, Qualcomm
  • Pixar
  • Nasa
  • ESRI (GIS)
  • NSA
  • OLPC

30. 1. Que puedo hacer con Python?

  • Scripting y software standalone
  • Lenguaje de Propsito General
  • Web, Juegos, Robtica, Aeronutica
  • Programacin a nivel de SO.
  • GUIs (Tkinter, wxPython)
  • PythonCard Dabo
  • Otros GUIs: Qt, GTK, MFC, Swing
  • Jython & servicios Python CGI

31. 1. Que puedo hacer con Python?

  • Internet Scripting
  • Integracin de componentes (C,C++, COM (MSWin), Jython, .NET (IronPython), CORBA)
  • Base de Datos (Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite, BDB, Firebird)
  • Rpido en Prototipos hacia C/C++
  • Programacin Numrica y Cientfica (Numpy)
  • Juegos, Imagenes, AI, XML, Robotica ... y ms!

32. 2. Puntos tcnicos fuertes

  • Orientado a Objetos
    • Polimorfismo, Sobrecarga, multi herencia
    • POO es una opcin (no es mandatoria)
  • Es libre de usar, distribuir y es soportado!
  • Es portable
    • Linux/Unix, Windows/DOS, Mac OS X, BeOS, OS/2
    • Sistemas de Tiempo Real (VxWorks)
    • Cray IBM mainframes
    • PDAs, Celulares con Symbian/Windows Mobile
    • Consolas de juego, iPods y mas...

33. 2. Puntos tcnicos fuertes

  • Es poderoso
    • Hbrido (se integra con lenguajes scripting Perl,TCL y tradicionales como C/C++)
    • Tipificacin dinmica (no declaracin previa)
    • Manejo automtico de memoria
    • Se programa en proyectos largos y complejos (uso de mdulos, clases y excepciones)
    • Objeto tipos Built-in
    • Tools Built-in
    • Utilidades desde terceros

34. 2. Puntos tcnicos fuertes

  • Es mezclable con otros lenguajes
    • Python API permite a rutinas C ser llamadas desde python mismo.
    • Se puede prototipear en Python y luego llevarlo a C/C++ una vez al tiempo.
  • Facilidad de uso
    • codificalo y correlo de una!
  • Fcil de aprender
  • Su nombre viene deMonty Python's Flying Circus

35. 3. El intrprete

  • Es una clase de programa que invoca otro programa.
  • Es la capa lgica de software entre el cdigo y el hw de computadora.
  • Auto-Instala en Windows (Click->Siguiente)
  • Linux/Mac OS X preinstalado?, compilan fuente o packs RPM/DEB
  • Disponibilidad: iPod, consolas de juego, celulares

36. 3. El intrprete

  • Ejecucin de programa
    • Archivo de texto simple con sentencias:
      • print 'hola mundo'
      • print 2 ** 100
    • Generar con cualquier editor de texto
      • Extensin .py
    • > Python script1.py
      • hola mundo
      • 1267650600228229401496703205376

37. 3. El intrprete

  • Ejecucin vista desde Python:
    • Archivo Texto Fuente -> Intrprete -> byte code -> maquina virtual
    • Extension .pyc : archivo byte code (binario)
  • Python Virtual Machine (PVM):
    • Es un big loop ke interactua entre las instr. bytecode
    • Es slo una parte del sistema ke conforma python.

38. 3. El intrprete

    • Implicaciones en el rendimiento
      • C/C++mas eficientes en la corrida o ejecucin
      • Bytecode es una represent. python no cdigo maquina
      • Cdigo se ejecuta a medida. que se escribe
      • Bytecode sigue interpret. Yrequiere mas CPU
    • Implicaciones en el desarrollo
      • Entorno Desarrollo & Ejecucin son iguales
      • Compilador presente en runtime
      • No Compilar -> Enlazar, solo haga y ejecute!
      • Todo sucede cuando se ejecuta el code

39. 4. Implementaciones Alternativas

  • Cpython
    • Portar cdigo Python a C ANSI (ActivePython distro)
    • Implementacin estandar de referencia del lenguaje
  • Jython
    • Integracin con Java (scripts corren como java apps)
    • Clases Java que portan el cdigo python a la JVM.

40. 4. Implementaciones Alternativas

  • IronPython
    • Permite a scripts python integrarse con aplicaciones codificadas para correr sobre .NET Framework
    • Acta como componente cliente/servidor para ser invocado por otros lenguajes .NET
    • Desarrollado por Microsoft (propietario de .NET)

41. 5. Ejecutando Python scripts:Modo Interactivo

  • Despues de estar instalado apropiadamente ejecutar desde el prompt (win32 o unix):python
  • Si deseas ejecutarlo desde cualquier sitio, agregarlo a la variable de entorno PATH (unix)/usr/bin/pythono PATH (win32) asiC:Python25python
  • Prompt:>>> {command line}

42. 5. Ejecutando Python scripts:Modo Interactivo

  • >>> print 'Hola mundo!' Hola mundo!
  • >>> print 2**8 256
  • Para salir del interprete: unix -> CTRL+D, win32 -> CTRL+Z
  • Para saber valor de variables no es necesario utilizarprint
  • Ejecuta instruccin a instruccin y no necesita cargar script completo .

43. 5. Ejecutando Python scripts:Modo Interactivo

  • Sirve para experimentar el lenguaje y utilizarlo para comprobar porciones de cdigo