Python Training Course
Python Training Course
Wilderman CerenIngeniero de Sistemas – Especialista en
TelecomunicacionesConsultor y experto en soluciones informáticas basadas en software
libre
Python Training Course
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– Implementación de clusters de alto rendimiento (HPC) y alta
disponibilidad (HA).
Python Training Course
Perfil profesional (Unix/POSIX)
● Administración de servidores y recursos– GNU/Linux (debian, gentoo, RHEL, ubuntu, otros)
– FreeBSD, OpenBSD & NetBSD.
– Seguridad en Embebidos: m0n0wall, pfSense
● Seguridad– OpenLDAP, Kerberos,OpenVPN, FreeRADIUS
Python Training Course
Contenido
1. Que puedo hacer con Python ?
2. Puntos técnicos fuertes
3. El intérprete
4. Implementación alternativa
1.Cpython
2.Jython
3.IronPython
5. Corriendo programas en Python
Python Training Course
Contenido
6.Tipos de Objetos– Integrados (built-in)
– Numeros
– Cadenas
– Listas
– Diccionarios– Tuplas
– Archivos
– Otros
Python Training Course
Contenido
● 7. Números• Literales numericos• Operadores• Variables y Expresiones basicas• Formatos de visualiz. Numerico• Division (classic y floor)• Operaciones Bitwise• Entero Largo• Número complejo
Python Training Course
Contenido
8.Números– Otros tipos numericos
● Decimales● Sets● Booleans● Extensiones de terceros
9.Cadenas– Literales
– Operaciones Basicas
Python Training Course
Contenido
– Indexado y Cortado (indexing and slicing)
– Herram. De Conversion
– Formateo de Cadenas
– Métodos
– Categorias de tipo general
10.Listas• Operaciones basicas• Indexado, Cortado y Matrices• Mutabilidad
Python Training Course
Contenido
11.Diccionarios– Operaciones basicas
– Mutabilidad
– Usos
12.Tuplas– Sintaxis
– Conversiones e inmutabilidad
– Por que Listas y Tuplas?
Python Training Course
Contenido
13.Archivos– Objetos en archivos
– Pickle
– Otras herramientas de archivo
– Tipos de Categoria
– Jerarquia de Tipos– Otros tipos
– Tipos Built-in
Python Training Course
Contenido
14. Sentencias en Python– Sintaxis a partir de sangrías
– Casos especiales
15. Loops interactivos– Manejo de errores con entrada de texto
– Manejo de errores con sentencias try
16. Sentencias de asignación
Python Training Course
Contenido
– Asignando en secuencia
– Asignación múltiple
– Asignación aumentada
– Reglas para nombrar variables
– Sentencias en expresiones
– Cambios en el mismo lugar
17. Sentencias print– Redirigiendo el flujo de salida
Python Training Course
Contenido
18. Sentencias if– Ejemplo basico
– Multi-ramificación con if – elif
– Reglas para sintaxis python
– Delimitadores de bloque
– Delimitadores en sentencias– Casos especiales
– Tests de verdad
– Expresion ternaria (if/else)
Python Training Course
Contenido
19. Loops while y for– break, continue, pass, break y else
– Iterators
– Iterators a nivel de archivo
– Otros iterators embebidos (built-in) & user-defined
– Técnicas para codificar loops– Usos de range, zip y map
– Generación de offsets e items con enumerate
Python Training Course
Contenido20. Comprensión de lista
– En archivos
– Sintaxis extendida
21. Documentación del código fuente– comentarios (#)
– función dir
– Docstrings:__doc__● definido por el usuario● estandar● integrado
Python Training Course
Contenido
– PyDoc: Función de ayuda
22. Funciones– Para que utilizar funciones ?
– Codificación de una función● Sentencia def● Definición● Llamadas
– Polimorfismo en Python
– Variables locales
Python Training Course
Contenido23. Alcance y argumentos
– Reglas en el alcance (scope)
– Conceptos Básicos 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
Python Training Course
Contenido
– Pasando argumentos
– Argumentos y referencias compartidas
– Evitando los cambios mutables en argumentos
– Simulando parámetros de salida
– Modos de concordancia de argumentos
– Valores default y keyword
– Argumentos arbitrarios
– Combinando keywords y default
– Ejemplo general de uso de funciones
Python Training Course
Contenido
24.Funciones Avanzadas– Funciones anónimas: lambda
● Expresiones lambda● Por que usar lambda ?● lambdas anidados y alcances
– Aplicando funciones a argumentos● comando apply● Sintaxis de llamada similar a apply
– Mapeando funciones sobre secuencias: map
– Uso de filter y reduce
Python Training Course
Contenido– Comprensión de lista: Mappings
– Conceptos básicos
– Añadiendo tests y loops anidados
– Comprensión de lista y matrices
– Iterators: Generators● Protocolo Función Generator Extendida: send y next● Iteratores y tipos de datos integrados
– Alternativas en la coordinación en iteraciónes
– Conceptos en el diseño de funciones
– Funciones son objetos: llamadas indirectas
– Tips en Funciones (Para tener en cuenta)
Python Training Course
Contenido● Nombres locales detectado estáticamente● Objetos default y mutables● Funciones sin retorno alguno
25. Módulos– Por que utilizar módulos ?
– Arquitectura de un programa en Python● Cómo estructurar un programa● Imports y Atributos● Módulos de la libreria estándar
– Cómo trabaja import
Python Training Course
Contenido● Programar un módulo
– Creación– Uso (import, from)– Namespaces– Recargar un módulo
● Paquetes– Import– Por que utilizar import de paquete?
● Conceptos Avanzados en módulos– Ocultando datos– Habilitando futuras caracteristicas– Mezclando modos de uso– Import Relativo– Conceptos en diseño de módulos– Gotchas
Python Training Course
Contenido
26. Clases y POO● Generalidades● Programando clases● Programando clases II
Sentencia Clase Métodos Herencia Operador de Sobrecarga Iteraciónes definida por el usuario Privacidad para los atributos en instancias
Python Training Course
Contenido
● Namespaces
– Diseño con clases● Python y POO● Clases como registros● POO y herencia: relaciones “Is-a”● POO y composición: relaciones “Has-a”● POO y delegación● Herencia múltiple● Clases son objetos: Generic Factories● Métodos son objetos: Bound o unbound● Revisión a la Docmentación con Strings
Python Training Course
Contenido
– Diseño 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 métodos de clase● Función “decorators”● Gotchas (Tips)
Python Training Course
Contenido27. Excepciones y Tools
● Conceptos básicos● Por que las excepciones (roles)● Manejo de Excepciones● Sentencia try/except/else● Sentencia try/finally● Unificado try/except● Sentencia raise● Sentencia assert
● Objetos Exception● Excepciones basadas en String
Python Training Course
Contenido
– Objetos Exception● Excepcion basada en clase● formas y sentencias generales raise
– Diseño con Excepciones● Excepciones anidadas (nesting exception)● Lenguajes en excepciones● Tips para diseño de Excepciones● Gotchas● Resumen del “Core”
– Python Toolset– Desarrollo de Tools para proyectos grandes
Python Training Course
Introducción
● Por que la gente usa Python– Calidad del Software *
– Productividad **
– Portabilidad
– Librerias de soporte
– Integración de componentes– Se disfruta!
Python Training Course
Quienes usan Python?● Google● YouTube● BitTorrent● Intel, Cisco, HP, Seagate, Qualcomm● Pixar● Nasa● ESRI (GIS)● NSA● OLPC
Python Training Course
1. Que puedo hacer con Python?
● Scripting y software “standalone”● Lenguaje de Propósito General● Web, Juegos, Robótica, Aeronáutica● Programación a nivel de SO.● GUIs (Tkinter, wxPython)● PythonCard – Dabo● Otros GUIs: Qt, GTK, MFC, Swing● Jython & servicios Python CGI
Python Training Course
1. Que puedo hacer con Python?
● Internet Scripting● Integración de componentes (C,C++, COM
(MSWin), Jython, .NET (IronPython), CORBA)● Base de Datos (Sybase, Oracle, Informix, ODBC,
MySQL, PostgreSQL, SQLite, BDB, Firebird)● Rápido en Prototipos hacia C/C++● Programación Numérica y Científica (Numpy)● Juegos, Imagenes, AI, XML, Robotica ... y más!
Python Training Course
2. Puntos técnicos fuertes● Orientado a Objetos
– Polimorfismo, Sobrecarga, multi herencia
– POO es una opción (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...
Python Training Course
2. Puntos técnicos fuertes● Es poderoso
– Híbrido (se integra con lenguajes “scripting” Perl,TCL y tradicionales como C/C++)
– Tipificación dinámica (no declaración previa)
– Manejo automático de memoria
– Se programa en proyectos largos y complejos (uso de módulos, clases y excepciones)
– Objeto tipos “Built-in”
– Tools “Built-in”
– Utilidades desde terceros
Python Training Course
2. Puntos técnicos 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!
● Fácil de aprender● Su nombre viene de Monty Python's Flying
Circus
Python Training Course
3. El intérprete
● Es una clase de programa que invoca otro programa.
● Es la capa lógica de software entre el código 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
Python Training Course
3. El intérprete
● Ejecución de programa– Archivo de texto simple con sentencias:
● print 'hola mundo'● print 2 ** 100
– Generar con cualquier editor de texto● Extensión .py
– > Python script1.pyhola mundo1267650600228229401496703205376
Python Training Course
3. El intérprete
● Ejecución vista desde Python:– Archivo Texto Fuente -> Intérprete -> 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 sólo una parte del sistema ke conforma python.
Python Training Course
3. El intérprete
– Implicaciones en el rendimiento● C/C++ mas eficientes en la corrida o ejecución● Bytecode es una represent. python no código maquina● Código se ejecuta a medida. que se escribe● Bytecode sigue interpret. Y requiere mas CPU
– Implicaciones en el desarrollo● Entorno Desarrollo & Ejecución son iguales● Compilador presente en runtime● No Compilar -> Enlazar, solo haga y ejecute!● Todo sucede cuando se ejecuta el code
Python Training Course
4. Implementaciones Alternativas
1.Cpython• Portar código Python a C ANSI (ActivePython
distro)• Implementación estandar de referencia del lenguaje
2. Jython• Integración con Java (scripts corren como java
apps)• Clases Java que portan el código python a la JVM.
Python Training Course
4. Implementaciones Alternativas
3. IronPython
Permite a scripts python integrarse con aplicaciones codificadas para correr sobre .NET Framework
Actúa como componente cliente/servidor para ser invocado por otros lenguajes .NET
Desarrollado por Microsoft (propietario de .NET)
Python Training Course
5. Ejecutando Python scripts: Modo Interactivo
● Despues de estar instalado apropiadamente ejecutar desde el prompt (w32 o unix): python
● Si deseas ejecutarlo desde cualquier sitio, agregarlo a la variable de entorno PATH (unix) /usr/bin/python o PATH (w32) asi C:\Python25\python
● Prompt: >>> {command line}
Python Training Course
5. Ejecutando Python scripts: Modo Interactivo● >>> print 'Hola mundo!'
Hola mundo!● >>> print 2**8
256● Para salir del interprete: unix -> CTRL+D, w32
-> CTRL+Z● Para saber valor de variables no es necesario
utilizar print● Ejecuta instrucción a instrucción y no necesita
cargar script completo .
Python Training Course
5. Ejecutando Python scripts: Modo Interactivo
● Sirve para experimentar el lenguaje y utilizarlo para comprobar porciones de código
● Escriba solo comandos● No utilice sangrado en este modo
Python Training Course
5. Ejecutando Python Scripts: Archivos y Linea de Comandos
● Guardar permanentemente el código en archivos (módulos)
● ¿ Modulos => programas ?● Scripts => conjunto de módulos que corren
directamente.● Prueba: Crear fichero spam.py y ejecutarlo
print 2 ** 8 # exponencialprint 'El lado brillante' + 'de la vida' #concatenar
python spam.py256El lado brillante de la vida
Python Training Course
5. Ejecutando Python Scripts: Archivos y Linea de Comandos
● w32: Al editar asocie el archivo a guardar con extensión .py
● w32: deshabilite del sistema la opción de ocultar extensiones
● Utilice nombre+extension al ejecutar:python spam.py y no python spam
● Al importar módulo, no es obligado utilizar extensión: import spam
● Utilice sentencia print en scripts para resultados
Python Training Course
5. Ejecutando Python Scripts: Unix scripting
● 1era linea de código: #!/usr/bin/python● Aplicar privilegio de ejecutable: chmod +x file.py
● scripts no requieren obligatoriamente extension .py (contrario a w32)
● En algunos unix: Es probable evitar en cabecera el python “full path” usando env asi: #!/usr/bin/env python
Python Training Course
5. Ejecutando Python Scripts: Cliqueando Iconos bajo Windows
● Asocia los .py para que se ejecuten con el IDLE (intérp. del lenguaje) con un simple “doble click”.
● unix: toca asociar los .py con el explorador de archivos empleado.
● Utilice al final raw_input() de truco para poder pausar el script al ejecutarlo con “doble click”
● “clickear” script, impide ver mensajes de error. Mejor use linea de comandos o IDLE.
● Mejor “clickear” scripts cuando ya estén depurados.
● Use .pyw para construcciones especiales w32 y evitar que aparezca la consola
Python Training Course
5. Ejecutando Python Scripts: Importar módulos y recargarlos
● Cada fichero .py viene siendo un módulo.
● Use import para acceder a los items definidos en un módulo.
● El modelo de servicios basado en módulos participa dentro del core como arquitectura de un programa en python.
● El módulo principal o de “más alto nivel” es el único ke es lanzado para iniciar el programa entero.
● import tambien ejecuta un script (solo una vez en la misma sesión IDLE):
● reload, permite ejecutar muchas veces el mismo script previamente cargado (importado) en la misma sesión
●
Python Training Course
5. Ejecutando Python Scripts: Atributos
● Un módulo es un paquete de nombres de variables conocido como namespaces.
● Cada nombre dentro de ese paquete es un atributo.
● Un atributo es un nombre de variable unido a un objeto.
● Ejemplo: crear .py, defina una variab y luego desde el IDLE importelo e imprima el valor de esa variable (atributo). Utilice import y from / import
● Utilice dir() para listar los atributos de un módulo: >>> dir(threenames)['_ _builtins_ _', '_ _doc_ _', '_ _file_ _', '_ _name_ _', 'a', 'b', 'c']
Python Training Course
5. Ejecutando Python Scripts: Interfaz de usuario (IDLE)● Le permite editar, correr, visualizar y depurar programas
python.
● Portable, basado en TKInter GUI Toolkit
● w32: es fácil de interactuar con el
● Siempre agregue a los archivos extension .pyEjecute los scripts desde el menu (Run->Run module)
● Es necesario recargar módulos anidados desde el módulo principal.
● No existe un “limpiar pantalla”
● TKInter no responde ante el tratamiento de hilos (threads)
● Depura con sólo clickear el script.-
Python Training Course
5. Ejecutando Python Scripts: IDE's alternativos
● Eclipse + pyDev (libre)
● Komodo (comercial)
● PythonWin (ActiveState)● Otros: WingIDE, pyCard
Python Training Course
5. Ejecutando Python Scripts: Python embebido
● Se aplica en dominios especializados.● Embebido = ejecutado por otro programa● Es posible correr código python dentro de un
programa C (integración Python/C)
include <Python.h>...Py_Initialize();PyRun_SimpleString(“x = brave + sir + robin”);
Python Training Course
5. Ejecutando Python Scripts:binario ejecutable
● Byte code + intérprete => binario ejecutable● Como despliegue de producto final, asemeja a
una aplicación convencional (click a iconos, linea de comandos)
Python Training Course
6. Tipos de ObjetosIncorporados “Built-In”
● ¿Si está hecho un procedimiento, para ke rediseñarlo?
● Hace fácil la escritura de programas● Componentes de extensiones => clases python
o interfaces C● Son mas eficientes ke estructuras
personalizadas● Hacen parte del estándar del lenguaje
Python Training Course
6. Tipos de ObjetosTipo de datos esenciales● Números: 1234, 3.1415, 999L, 3+4j
● Cadenas: 'spam', “abcd's”
● Listas: [ 1, [ 2, 'three' ], 4 ]
● Diccionarios: { 'food' : 'spam', 'taste' : 'yum' }
● Tuplas: ( 1, 'spam', 4, 'U' )
● Archivos: myfile = open( 'eggs', 'r' )
● Otros: sets, types, None, Booleans
● Declarados dinámicante.
● Fuerte en las operaciones válidas que correspondan con la naturaleza del objeto.
Python Training Course
6. Tipos de ObjetosNúmeros
● Enteros (integers): >>> 123 + 222
● Punto flotante (float): >>> 1.5 * 4
● Ilimitada-precision (long integer con parte imaginaria): >>> 2 ** 1001267650600228229401496703205376L
● Decimal de precisión flexible● Sets
Python Training Course
6. Tipos de ObjetosNúmeros
● math: módulo con colección matemática!>>> import math>>> math.pi3.1415926535897931>>> math.sqrt(85)9.2195444572928871
● random: módulo aleatorio>>> import random>>> random.random( )0.59268735266273953>>> random.choice([1, 2, 3, 4])1
Python Training Course
6. Tipos de ObjetosStrings
● Guardan información textual o una arbitraria colección de bytes.
● Una secuencia de un caracter● Operaciones con strings:>>> S = 'Spam'>>> len(S)4>>> S[0]'S'>>> S[1]'p'
Python Training Course
6. Tipos de ObjetosStrings
● El 1er item está en la posición 0 y el ultimo en len(s)-1
● Indice negativo va a relación de der. a izq: S[-1] => 's'
● Corte en la secuencia (slice): >>> S'Spam'>>> S[1:3]'pa'
Python Training Course
6. Tipos de ObjetosStrings
● Cortado (slice):>>> S[1:]'pam'>>> S'Spam'>>> S[0:3]'Spa'>>> S[:3]'Spa'>>> S[:-1]'Spa'>>> S[:]'Spam'
Python Training Course
6. Tipos de ObjetosStrings
● Concatenación:>>> S'Spam'>>> S + 'xyz''Spamxyz'>>> S * 3'SpamSpamSpam'
● + => Suma numérica o concatenar cadenas (polimorfismo)
● Strings son inmutables: S[0] = 'z' Error!Pero: >>> S = 'z' + S[1:]>>> S'zpam' #correr expresion para crear nuevo objeto
Python Training Course
6. Tipos de ObjetosStrings
● Algunos métodos específicos:>>> S.find('pa') #encuentra offset1>>> S.replace('pa','XYZ')'sXYZm'
>>> line = 'aaa,bbb,ccccc,dd'>>> line.split(',')['aaa', 'bbb', 'ccccc', 'dd']
>>> S='spam'>>> S.upper()'SPAM'
● Ayuda en linea: para conocer métodos y atributos de una instancia utilice dir(S),help(S.{method})
Python Training Course
6. Tipos de ObjetosStrings
● Multilinea:>>> msg = “““aaaaaaabbb'''bbbbbb”””
● Patterns:>>> import re>>> match = re.match('Hello[\t]*(.*)world', 'Hello Python World')>>> match.group(1)'Python '
Python Training Course
6. Tipos de ObjetosListas
● Secuencia mas general del lenguaje.● Colección ordenada de distintos objetos
arbitrarios y sin tamaño predefinido● Mutable (modificable)● Operaciones:>>> L = [123, 'spam', 1.23]>>> len(L)3
Python Training Course
● >>> L[0]123
● >>> L[:-1][ 123, 'spam' ]
● >>> L + [4, 5, 6][ 123, 'spam', 1.23, 4, 5, 6 ]
● >>> L[ 123, 'spam', 1.23 ]
● Algunas operaciones típicas:● >>> L.append('NI')
>>> L[ 123, 'spam', 1.23, 'NI' ]
● >>> L.pop(1.23)>>> L[ 123, 'spam', 'NI']
● Pruebe métodos insert, remove
Python Training Course
● Sort:>>> M = ['bb', 'aa', 'cc']>>> M.sort( )>>> M['aa', 'bb', 'cc']
● Reverse:>>> M.reverse( )>>> M['cc', 'bb', 'aa']
● Chequeo de Saltos:>>> L[123, 'spam', 'NI']>>> L[99]...error text omitted...IndexError: list index out of range>>> L[99] = 1...error text omitted...IndexError: list assignment index out of range
● Para incrementar una lista utilice metodo L.append()
Python Training Course
● Anidamiento (Nesting):>>> M = [[1, 2, 3], # Una matriz 3 x 3 matrix, como listas anidada
[4, 5, 6], [7, 8, 9]]
>>> M[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> M[1] # valor en fila 2[4, 5, 6]>>> M[1][2] #ubica fila 2, entonces extrae item 3 dentro de esa fila6
● Comprensión de listas: Procesar estructuras de listas>>> col2 = [row[1] for row in M] # recuperar items en columna 2>>> col2[2, 5, 8]>>> M # La matriz no ha cambiado[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
●
Python Training Course
6. Tipos de ObjetosDiccionarios
● No son secuencias, sino conocidos como mapeos. Igualmente son colecciones de otros objetos.
● Mutables!● Codificados entre corchetes● >>> D = {'food': 'Spam', 'quantity': 4, 'color': 'pink'}
>>> D['food'] # captura valor de llave 'food''Spam'
>>> D['quantity'] += 1 # Agrega 1 a valor 'quantity'>>> D{'food': 'Spam', 'color': 'pink', 'quantity': 5}
Python Training Course
● Construcción de diccionario:>>> D = {}>>> D['name'] = 'Bob' # Crear llave por asignación>>> D['job'] = 'dev'>>> D['age'] = 40>>> D{'age': 40, 'job': 'dev', 'name': 'Bob'}>>> print D['name']Bob
● Anidamiento en diccionario:rec = {'name': {'first': 'Bob', 'last': 'Smith'}, 'job': ['dev', 'mgr'],'age': 40.5}
>>> rec['name'] # 'Name' es un diccionario anidado{'last': 'Smith', 'first': 'Bob'}
>>> rec['name']['last'] # valor del indice last en el dicc anidado'Smith'
>>> rec['job'] # 'Job' is a nested list['dev', 'mgr']
>>> rec['job'][-1] # Index the nested list'mgr'
>>> rec['job'].append('janitor') # aumenta para Bob en job descripción>>> rec{'age': 40.5, 'job': ['dev', 'mgr', 'janitor'], 'name': {'last': 'Smith', 'first':'Bob'}}
Python Training Course
● Limpiar la memoria de una variable (diccionario), actualmente (garbage collector)>>> rec = 0 # con esto, el espacio de objeto es reclamado.
● Ordenamiento de diccionarios:>>> D = {'a': 1, 'b': 2, 'c': 3}>>> D{'a': 1, 'c': 3, 'b': 2}
Utilizando estructura loop podemos ordenar el diccionario:
>>> Ks = D.keys( ) # lista de llaves desordenada>>> Ks['a', 'c', 'b']>>> Ks.sort( ) # lista de llaves ordenada>>> Ks['a', 'b', 'c']>>> for key in Ks: # Iterar dentro though sorted keysprint key, '=>', D[key]a => 1b => 2c => 3
Python Training Course
● Ordenamiento, utilizando función sorted>>> D{'a': 1, 'c': 3, 'b': 2}>>> for key in sorted(D):
print key, '=>', D[key]a => 1b => 2c => 3
● Optimización en la iteración (protocolo de iteración):>>> squares = [x ** 2 for x in [1, 2, 3, 4, 5]]>>> squares[1, 4, 9, 16, 25]
Utilizando loop for:>>> squares = []>>> for x in [1, 2, 3, 4, 5]:
squares.append(x ** 2)>>> squares[1, 4, 9, 16, 25]
●
Python Training Course
6. Tipos de ObjetosTuplas
● Secuencia similar a una lista pero inmutable como los strings.
● Operaciones básicas:>>> T = (1, 2, 3, 4) # A 4-item tuple>>> len(T) # Tamaño4>> T + (5, 6) # Concatenación(1, 2, 3, 4, 5, 6)>>> T[0] # Indexado, cortado y mas1
● Por que tuplas: Por la facilidad de uso en usar una especie de lista pero donde sus valores sean inmutables.
Python Training Course
6. Tipos de ObjetosArchivos● Principal interface para el acceso a archivos externos!● Escritura
>>> f = open('data.txt', 'w') # Crea un nuevo archivo de escritura>>> f.write('Hello\n') # Escribe las cadenas a disco>>> f.write('world\n')>>> f.close( ) # Cierra el buffer de escritura
● Lectura de archivo:>>> f = open('data.txt') # 'r' is the default processing mode>>> bytes = f.read( ) # Read entire file into a string>>> bytes'Hello\nworld\n'>>> print bytes # Imprime caracteres de controlHelloworld>>> bytes.split( ) # Contenido de archivo es siempre una cadena['Hello', 'world']
● Otros tools similares a manejo de archivo: pipes, fifos, sockets, archivo de acceso por llaves, persistencia en objetos, basado en descriptores, relacional y base de datos de interfaz orientada a objetos.
Python Training Course
6. Tipos de ObjetosOtros tipos core
● Set: operaciones lógicas de conjuntos>>> X = set('spam')>>> Y = set(['h', 'a', 'm']) # 2 sets de secuencias>>> X, Y(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))
>>> X & Y # Interseccionset(['a', 'm'])
>>> X | Y # Unionset(['a', 'p', 's', 'h', 'm'])
>>> X – Y # Diferenciaset(['p', 's'])
●
Python Training Course
● >>> import decimal # Decimales>>> d = decimal.Decimal('3.141')>>> d + 1Decimal("4.141")
● >>> 1 > 2, 1 < 2 # Booleanos(False, True)>>> bool('spam')True
● >>> X = None # None asignación>>> print XNone
● >>> L = [None] * 100 # Inicializar una lista con 100 Nones>>> L[None, None, None, None, None, None, None, None, None, None, None, None, None,...a list of 100 Nones...]
● >>> type(L) # Tipos<type 'list'>>>> type(type(L)) # Incluso, types son objetos<type 'type'>
●
Python Training Course
14. Sentencias en Python
● Formato general:Header line:
Nested statement block
● Lo que python remueve:● Los paréntesis son opcionales.
● Fin de linea es fin de sentencias (sin ;)
● Fin de Sangrado es fin de bloque
Python Training Course
● Casos especiales en sentencias
a = 1; b = 2; print a + b # tres sentencias en una linea● mlist = [111,
222, 333]
● X = (A + B +C + D)
● if (A == 1 andB == 2 andC == 3):
print 'spam' * 3
● X = A + B + \C + D
● Caso especial de regla de Bloque: if x > y: print x
Python Training Course
15. Sentencias en PythonLoops interactivos
● Loop interactivo simple
while True:reply = raw_input('Enter text:')if reply == 'stop': breakprint reply.upper( )
● Manejo de errores al testear entrada
while True:reply = raw_input('Enter text:')if reply == 'stop':
breakelif not reply.isdigit( ):
print 'Bad!' * 8else:
print int(reply) ** 2print 'Bye'
Python Training Course
● Manejo de errores usando setencia try
while True:reply = raw_input('Enter text:')if reply == 'stop': breaktry:
num = int(reply)except:
print 'Bad!' * 8else:
print int(reply) ** 2print 'Bye'
Python Training Course
16. Sentencias de asignación
● Asignación crea referencias a objeto● Variables se crean al asignarse● Nombres deben ser asignados antes de ser
referenciados● Asignaciones implicitas: import, from, def,
class, function arguments
Python Training Course
16. Sentencias de asignaciónFormas al asignar
● spam = 'Spam'● [spam, ham] = ['yum', 'YUM']● a, b, c, d = 'spam'● spam = ham = 'lunch'● Spams += 42
>>> nudge = 1>>> wink = 2>>> A, B = nudge, wink # Tuple assignment>>> A, B # Like A = nudge; B = wink(1, 2)>>> [C, D] = [nudge, wink] # List assignment>>> C, D(1, 2)
>>> nudge = 1>>> wink = 2>>> nudge, wink = wink, nudge # Tuples: swaps values>>> nudge, wink # Like T = nudge; nudge = wink; wink = T(2, 1)
Top Related