Vous êtes sur la page 1sur 84

Python Training Course

Wilderman Ceren
Ingeniero de Sistemas Especialista en Telecomunicaciones
Consultor y experto en soluciones informticas 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

Implementacin de clusters de alto rendimiento (HPC) y alta disponibilidad (HA).

Python Training Course

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

Python Training Course

Contenido
1. Que puedo hacer con Python ? 2. Puntos tcnicos fuertes 3. El intrprete 4. Implementacin 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. Nmeros

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

Python Training Course

Contenido
8.Nmeros

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 Mtodos Categorias de tipo general Operaciones basicas Indexado, Cortado y Matrices Mutabilidad

10.Listas

Python Training Course

Contenido
11.Diccionarios

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

12.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 sangras Casos especiales Manejo de errores con entrada de texto Manejo de errores con sentencias try

15. Loops interactivos


16. Sentencias de asignacin

Python Training Course

Contenido

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

17. Sentencias print

Python Training Course

Contenido
18. Sentencias if

Ejemplo basico Multi-ramificacin 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 Tcnicas para codificar loops Usos de range, zip y map Generacin de offsets e items con enumerate

Python Training Course

Contenido
20. Comprensin de lista

En archivos Sintaxis extendida comentarios (#) funcin dir Docstrings:__doc__


21. Documentacin del cdigo fuente


definido por el usuario estandar integrado

Python Training Course

Contenido

PyDoc: Funcin de ayuda Para que utilizar funciones ? Codificacin de una funcin

22. Funciones

Sentencia def Definicin Llamadas

Polimorfismo en Python Variables locales

Python Training Course

Contenido
23. 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

Python Training Course

Contenido

Pasando argumentos Argumentos y referencias compartidas Evitando los cambios mutables en argumentos Simulando parmetros 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 annimas: lambda


Expresiones lambda Por que usar lambda ? lambdas anidados y alcances comando apply Sintaxis de llamada similar a apply

Aplicando funciones a argumentos


Mapeando funciones sobre secuencias: map Uso de filter y reduce

Python Training Course

Contenido

Comprensin de lista: Mappings Conceptos bsicos Aadiendo tests y loops anidados Comprensin de lista y matrices Iterators: Generators

Protocolo Funcin Generator Extendida: send y next 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)

Python Training Course

Contenido

Nombres locales detectado estticamente Objetos default y mutables Funciones sin retorno alguno

25. Mdulos

Por que utilizar mdulos ? Arquitectura de un programa en Python


Cmo estructurar un programa Imports y Atributos Mdulos de la libreria estndar

Cmo trabaja import

Python Training Course

Contenido

Programar un mdulo

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

Paquetes

Conceptos Avanzados en mdulos


Python Training Course

Contenido
26. 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

Python Training Course

Contenido

Namespaces 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

Diseo con clases


Python Training Course

Contenido

Diseo con clases

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

Topicos avanzados en clases


Python Training Course

Contenido

27. Excepciones y Tools


Conceptos bsicos
Por que las excepciones (roles) Manejo de Excepciones Sentencia try/except/else Sentencia try/finally Unificado try/except Sentencia raise Sentencia assert Excepciones basadas en String

Objetos Exception

Python Training Course

Contenido

Objetos Exception

Excepcion basada en clase formas y sentencias generales raise Excepciones anidadas (nesting exception) Lenguajes en excepciones Tips para diseo de Excepciones Gotchas Resumen del Core

Diseo con Excepciones


Python Toolset Desarrollo de Tools para proyectos grandes

Python Training Course

Introduccin

Por que la gente usa Python


Calidad del Software * Productividad ** Portabilidad Librerias de soporte Integracin de componentes Se disfruta!

Python Training Course

Google

Quienes usan Python?

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 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

Python Training Course

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!

Python Training Course

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...

Python Training Course

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

Python Training Course

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. codificalo y correlo de una!

Facilidad de uso

Fcil de aprender Su nombre viene de Monty Python's Flying Circus

Python Training Course

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

Python Training Course

3. El intrprete

Ejecucin de programa

Archivo de texto simple con sentencias:


print 'hola mundo' print 2 ** 100 Extensin .py

Generar con cualquier editor de texto

> Python script1.py


hola mundo 1267650600228229401496703205376

Python Training Course

3. El intrprete

Ejecucin vista desde Python:

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

Python Virtual Machine (PVM):

Python Training Course

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. Y requiere mas CPU Entorno Desarrollo & Ejecucin son iguales Compilador presente en runtime No Compilar -> Enlazar, solo haga y ejecute! Todo sucede cuando se ejecuta el code

Implicaciones en el desarrollo

Python Training Course

4. Implementaciones Alternativas
1.Cpython

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

2. Jython

Python Training Course

4. Implementaciones Alternativas
3. 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)

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 instruccin a instruccin 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 cdigo Escriba solo comandos No utilice sangrado en este modo

Python Training Course

5. Ejecutando Python Scripts: Archivos


y Linea de Comandos

Guardar permanentemente el cdigo en archivos (mdulos) Modulos => programas ? Scripts => conjunto de mdulos que corren directamente. Prueba: Crear fichero spam.py y ejecutarlo
print 2 ** 8 # exponencial print 'El lado brillante' + 'de la vida' #concatenar

python spam.py 256 El 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 extensin .py w32: deshabilite del sistema la opcin de ocultar extensiones Utilice nombre+extension al ejecutar: python spam.py y no python spam Al importar mdulo, no es obligado utilizar extensin: import spam Utilice sentencia print en scripts para resultados

Python Training Course

5. Ejecutando Python Scripts:


Unix scripting

1era linea de cdigo: #!/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 (intrp. 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 estn depurados. Use .pyw para construcciones especiales w32 y evitar que aparezca la consola

Python Training Course

5. Ejecutando Python Scripts:


Importar mdulos y recargarlos

Cada fichero .py viene siendo un mdulo. Use import para acceder a los items definidos en un mdulo. El modelo de servicios basado en mdulos participa dentro del core como arquitectura de un programa en python. El mdulo principal o de ms alto nivel es el nico ke es lanzado para iniciar el programa entero. import tambien ejecuta un script (solo una vez en la misma sesin IDLE): reload, permite ejecutar muchas veces el mismo script previamente cargado (importado) en la misma sesin

Python Training Course

5. Ejecutando Python Scripts:


Atributos

Un mdulo 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 mdulo:
>>> 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 fcil de interactuar con el Siempre agregue a los archivos extension .py Ejecute los scripts desde el menu (Run->Run module) Es necesario recargar mdulos anidados desde el mdulo principal. No existe un limpiar pantalla TKInter no responde ante el tratamiento de hilos (threads) Depura con slo 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 cdigo python dentro de un programa C (integracin Python/C)
include <Python.h> ... Py_Initialize(); PyRun_SimpleString(x = brave + sir + robin);

Python Training Course

5. Ejecutando Python Scripts:


binario ejecutable

Byte code + intrprete => binario ejecutable Como despliegue de producto final, asemeja a una aplicacin convencional (click a iconos, linea de comandos)

Python Training Course

6. Tipos de Objetos
Incorporados Built-In

Si est hecho un procedimiento, para ke redisearlo? Hace fcil la escritura de programas Componentes de extensiones => clases python o interfaces C Son mas eficientes ke estructuras personalizadas Hacen parte del estndar del lenguaje

Python Training Course

6. Tipos de Objetos
Tipo de datos esenciales

Nmeros: Cadenas: Listas: Diccionarios: Tuplas: Archivos: Otros:

1234, 3.1415, 999L, 3+4j 'spam', abcd's [ 1, [ 2, 'three' ], 4 ] { 'food' : 'spam', 'taste' : 'yum' } ( 1, 'spam', 4, 'U' ) myfile = open( 'eggs', 'r' ) sets, types, None, Booleans

Declarados dinmicante. Fuerte en las operaciones vlidas que correspondan con la naturaleza del objeto.

Python Training Course

6. Tipos de Objetos
Nmeros

Enteros (integers):

>>> 123 + 222

Punto flotante (float): >>> 1.5 * 4 Ilimitada-precision (long integer con parte imaginaria): >>> 2 ** 100
1267650600228229401496703205376L

Decimal de precisin flexible Sets

Python Training Course

6. Tipos de Objetos
Nmeros

math: mdulo con coleccin matemtica!


>>> import math >>> math.pi 3.1415926535897931 >>> math.sqrt(85) 9.2195444572928871

random: mdulo aleatorio >>> import random >>> random.random( ) 0.59268735266273953 >>> random.choice([1, 2, 3, 4]) 1

Python Training Course

6. Tipos de Objetos
Strings

Guardan informacin textual o una arbitraria coleccin de bytes. Una secuencia de un caracter Operaciones con strings:
>>> >>> 4 >>> 'S' >>> 'p' S = 'Spam' len(S) S[0] S[1]

Python Training Course

6. Tipos de Objetos
Strings

El 1er item est en la posicin 0 y el ultimo en len(s)-1 Indice negativo va a relacin de der. a izq: S[-1] => 's' Corte en la secuencia (slice):
>>> S 'Spam' >>> S[1:3] 'pa'

Python Training Course

6. Tipos de Objetos
Strings

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 Objetos
Strings

Concatenacin:
>>> S 'Spam' >>> S + 'xyz' 'Spamxyz' >>> S * 3 'SpamSpamSpam'

+ => Suma numrica 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 Objetos
Strings

Algunos mtodos especficos:


>>> S.find('pa') #encuentra offset 1 >>> 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 mtodos y atributos de una instancia utilice dir(S),help(S.{method})

Python Training Course

6. Tipos de Objetos
Strings

Multilinea:

>>> msg = aaaaaaa bbb'''bbbbbb

Patterns:

>>> import re >>> match = re.match('Hello[\t]*(.*)world', 'Hello World') >>> match.group(1) 'Python '

Python

Python Training Course

6. Tipos de Objetos
Listas

Secuencia mas general del lenguaje. Coleccin ordenada de distintos objetos arbitrarios y sin tamao 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 tpicas:


>>> L.append('NI') >>> L [ 123, 'spam', 1.23, 'NI' ] >>> L.pop(1.23) >>> L [ 123, 'spam', 'NI']

Pruebe mtodos 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 fila 6

Comprensin 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 Objetos
Diccionarios

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

Construccin de diccionario:
>>> >>> >>> >>> >>> >>> Bob

D = {} D['name'] = 'Bob' # Crear llave por asignacin D['job'] = 'dev' D['age'] = 40 D{'age': 40, 'job': 'dev', 'name': 'Bob'} print D['name']

Anidamiento en diccionario:
>>> rec['name'] # 'Name' {'last': 'Smith', 'first': 'Bob'}

rec = {'name': {'first': 'Bob', 'last': 'Smith'}, 'job': ['dev', 'mgr'],'age': 40.5} es un diccionario anidado

>>> 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 descripcin >>> 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 keys print key, '=>', D[key] a => 1 b => 2 c => 3

Python Training Course

Ordenamiento, utilizando funcin sorted


>>> D {'a': 1, 'c': 3, 'b': 2} >>> for key in sorted(D): print key, '=>', D[key] a => 1 b => 2 c => 3

Optimizacin en la iteracin (protocolo de iteracin):


>>> 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 Objetos
Tuplas

Secuencia similar a una lista pero inmutable como los strings. Operaciones bsicas:
>>> T = (1, 2, 3, 4) # A 4-item tuple >>> len(T) # Tamao 4 >> T + (5, 6) # Concatenacin (1, 2, 3, 4, 5, 6) >>> T[0] # Indexado, cortado y mas 1

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 Objetos
Archivos

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 control Hello world >>> 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 Objetos
Otros tipos core

Set: operaciones lgicas 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 # Interseccion set(['a', 'm']) >>> X | Y # Union set(['a', 'p', 's', 'h', 'm']) >>> X Y # Diferencia set(['p', 's'])

Python Training Course

>>> import decimal # Decimales >>> d = decimal.Decimal('3.141') >>> d + 1 Decimal("4.141") >>> 1 > 2, 1 < 2 # Booleanos (False, True) >>> bool('spam') True >>> X = None # None asignacin >>> print X None >>> 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

Python Training Course

14. Sentencias en Python

Python Training Course

14. Sentencias en Python

Formato general:
Header line: Nested statement block

Lo que python remueve:


Los parntesis 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 and B == 2 and C == 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 Python


Loops interactivos

Loop interactivo simple


while True: reply = raw_input('Enter text:') if reply == 'stop': break print reply.upper( )

Manejo de errores al testear entrada


while True: reply = raw_input('Enter text:') if reply == 'stop': break elif not reply.isdigit( ): print 'Bad!' * 8 else: print int(reply) ** 2 print 'Bye'

Python Training Course

Manejo de errores usando setencia try


while True: reply = raw_input('Enter text:') if reply == 'stop': break try: num = int(reply) except: print 'Bad!' * 8 else: print int(reply) ** 2 print 'Bye'

Python Training Course

16. Sentencias de asignacin

Asignacin 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 asignacin


Formas al asignar

spam = 'Spam' [spam, ham] = ['yum', 'YUM'] a, b, c, d = 'spam' spam = ham = 'lunch' Spams += 42 >>> >>> >>> >>> (1, >>> >>> (1, >>> >>> >>> >>> (2, nudge = 1 wink = 2 A, B = nudge, wink # Tuple assignment A, B # Like A = nudge; B = wink 2) [C, D] = [nudge, wink] # List assignment C, D 2) nudge = 1 wink = 2 nudge, wink = wink, nudge # Tuples: swaps values nudge, wink # Like T = nudge; nudge = wink; wink = T 1)

Python Training Course

16. Sentencias de asignacin


Asignacin mltiple

>>> a = b = c = 'spam' >>> a, b, c ('spam', 'spam', 'spam') >>> c = 'spam' >>> b = c >>> a = b

Python Training Course

Vous aimerez peut-être aussi