python programming learning
-
Upload
m0n0lithic -
Category
Documents
-
view
1.718 -
download
5
description
Transcript of python programming learning
- 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?
- 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