Download Python 3 al descubierto
Document related concepts
no text concepts found
Transcript
Python 3 al descubierto Arturo Fernández Montoro Python 3 al descubierto Arturo Fernández Montoro BIC: UMX ISBN: 978-84-939450-4-6 EAN: 9788493945046 Copyright © 2012 RC Libros © RC Libros es un sello y marca comercial registrados Python 3 al descubierto. Reservados todos los derechos. Ninguna parte de este libro incluida la cubierta puede ser reproducida, su contenido está protegido por la Ley vigente que establece penas de prisión y/o multas a quienes intencionadamente reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica, o su transformación, interpretación o ejecución en cualquier tipo de soporte existente o de próxima invención, sin autorización previa y por escrito de los titulares de los derechos de la propiedad intelectual. RC Libros, el Autor, y cualquier persona o empresa participante en la redacción, edición o producción de este libro, en ningún caso serán responsables de los resultados del uso de su contenido, ni de cualquier violación de patentes o derechos de terceras partes. El objetivo de la obra es proporcionar al lector conocimientos precisos y acreditados sobre el tema tratado pero su venta no supone ninguna forma de asistencia legal, administrativa ni de ningún otro tipo, si se precisase ayuda adicional o experta deberán buscarse los servicios de profesionales competentes. Productos y marcas citados en su contenido estén o no registrados, pertenecen a sus respectivos propietarios. RC Libros Calle Mar Mediterráneo, 2. Nave 6 28830 SAN FERNANDO DE HENARES, Madrid Teléfono: +34 91 677 57 22 Fax: +34 91 677 57 22 Correo electrónico: [email protected] Internet: www.rclibros.es Diseño de colección, cubierta y pre-impresión: Grupo RC Impresión y encuadernación: Villena Artes Gráficas Depósito Legal: M-16272-2012 Impreso en España 16 15 14 13 12 (1 2 3 4 5 6 7 8 9 10 11 12) ÍNDICE PRÓLOGO .................................................................................................. XI CAPÍTULO 1. PRIMEROS PASOS ................................................................... 1 Introducción ..................................................................................................... 1 ¿Qué es Python? .............................................................................................. 1 Un poco de historia ...................................................................................... 2 Principales características ............................................................................ 4 Instalación ........................................................................................................ 6 Windows 7 .................................................................................................... 7 Mac OS X .................................................................................................... 10 Linux ........................................................................................................... 11 Hola Mundo.................................................................................................... 13 Código fuente y bytecode ........................................................................... 14 Herramientas de desarrollo............................................................................ 15 Editores ...................................................................................................... 15 Entornos integrados de desarrollo (IDE) .................................................... 16 Intérprete interactivo mejorado................................................................. 17 Depuradores ............................................................................................... 18 Profiling ...................................................................................................... 19 Novedades en Python 3.................................................................................. 20 CAPÍTULO 2. ESTRUCTURAS Y TIPOS DE DATOS BÁSICOS ........................... 23 Introducción ................................................................................................... 23 Conceptos básicos .......................................................................................... 23 Tipado dinámico ......................................................................................... 24 PYTHON 3 AL DESCUBIERTO Números ......................................................................................................... 27 Enteros, reales y complejos ........................................................................ 27 Sistemas de representación ....................................................................... 29 Operadores ................................................................................................. 29 Funciones matemáticas .............................................................................. 30 Conjuntos ................................................................................................... 31 Cadenas de texto ............................................................................................ 32 Tipos ........................................................................................................... 33 Principales funciones y métodos ................................................................ 34 Operaciones ............................................................................................... 37 Tuplas ............................................................................................................. 38 Listas ............................................................................................................... 40 Inserciones y borrados ............................................................................... 41 Ordenación ................................................................................................. 43 Comprensión .............................................................................................. 44 Matrices...................................................................................................... 45 Diccionarios .................................................................................................... 46 Acceso, inserciones y borrados .................................................................. 47 Comprensión .............................................................................................. 49 Ordenación ................................................................................................. 49 CAPÍTULO 3. SENTENCIAS DE CONTROL, MÓDULOS Y FUNCIONES ............ 51 Introducción ................................................................................................... 51 Principales sentencias de control ................................................................... 52 if, else y elif ................................................................................................. 52 for y while ................................................................................................... 53 pass y with .................................................................................................. 55 Funciones ....................................................................................................... 55 Paso de parámetros.................................................................................... 56 Valores por defecto y nombres de parámetros .......................................... 58 Número indefinido de argumentos ............................................................ 59 Desempaquetado de argumentos .............................................................. 61 Funciones con el mismo nombre ................................................................ 61 Funciones lambda....................................................................................... 62 Tipos mutables como argumentos por defecto .......................................... 64 Módulos y paquetes ....................................................................................... 65 Módulos ..................................................................................................... 65 Funcionamiento de la importación......................................................... 67 Path de búsqueda ................................................................................... 68 Librería estándar..................................................................................... 69 Paquetes ..................................................................................................... 69 VI © RC Libros ÍNDICE Comentarios ................................................................................................... 70 Excepciones .................................................................................................... 71 Capturando excepciones ............................................................................ 71 Lanzando excepciones ................................................................................ 72 Excepciones definidas por el usuario ......................................................... 73 Información sobre la excepción ................................................................. 74 CAPÍTULO 4. ORIENTACIÓN A OBJETOS ..................................................... 75 Introducción ................................................................................................... 75 Clases y objetos .......................................................................................... 76 Variables de instancia ................................................................................. 78 Métodos de instancia ................................................................................. 79 Variables de clase ....................................................................................... 79 Propiedades................................................................................................ 80 Visibilidad ................................................................................................... 82 Métodos de clase ....................................................................................... 84 Métodos estáticos ...................................................................................... 86 Métodos especiales .................................................................................... 87 Creación e inicialización ......................................................................... 87 Destructor .............................................................................................. 89 Representación y formatos .................................................................... 90 Comparaciones ....................................................................................... 91 Hash y bool ............................................................................................. 93 Herencia ..................................................................................................... 94 Simple ..................................................................................................... 95 Múltiple .................................................................................................. 97 Polimorfismo .............................................................................................. 98 Introspección .............................................................................................. 99 CAPÍTULO 5. PROGRAMACIÓN AVANZADA ............................................. 103 Introducción ................................................................................................. 103 Iterators y generators ................................................................................... 103 Iterators .................................................................................................... 104 Funciones integradas ............................................................................ 106 Generators ............................................................................................... 107 Closures ........................................................................................................ 108 Decorators .................................................................................................... 111 Patrón decorator, macros y Python decorators ........................................ 111 Declaración y funcionamiento .................................................................. 112 Decorators en clases................................................................................. 113 Funciones como decorators ..................................................................... 114 © RC Libros VII PYTHON 3 AL DESCUBIERTO Utilizando parámetros .............................................................................. 115 Decorador sin parámetros .................................................................... 115 Decorador con parámetros .................................................................. 116 Programación funcional ............................................................................... 118 Expresiones regulares................................................................................... 120 Patrones y metacaracteres ....................................................................... 121 Búsquedas ................................................................................................ 123 Sustituciones ............................................................................................ 126 Separaciones ............................................................................................ 127 Modificadores .......................................................................................... 127 Patrones para comprobaciones cotidianas .............................................. 128 Ordenación de datos .................................................................................... 129 Método itemgetter() ................................................................................ 130 Funciones lambda .................................................................................... 132 CAPÍTULO 6. FICHEROS ........................................................................... 133 Introducción ................................................................................................. 133 Operaciones básicas ..................................................................................... 134 Apertura y creación .................................................................................. 134 Lectura y escritura .................................................................................... 137 Serialización .................................................................................................. 140 Ejemplo práctico ....................................................................................... 141 Ficheros xml, json y yaml .............................................................................. 143 XML........................................................................................................... 143 JSON ......................................................................................................... 146 YAML ........................................................................................................ 148 Ficheros CSV ................................................................................................. 150 Analizador de ficheros de configuración ...................................................... 152 Compresión y descompresión de ficheros.................................................... 155 Formato ZIP .............................................................................................. 155 Formato gzip ............................................................................................. 157 Formato bz2 ............................................................................................. 159 Formato tarball ......................................................................................... 159 CAPÍTULO 7. BASES DE DATOS ................................................................ 163 Introducción ................................................................................................. 163 Relacionales .................................................................................................. 164 MySQL ...................................................................................................... 166 PostgreSQL ............................................................................................... 169 Oracle ....................................................................................................... 171 SQLite3 ..................................................................................................... 173 VIII © RC Libros ÍNDICE ORM ......................................................................................................... 174 Sqlalchemy ........................................................................................... 174 Sqlobject ............................................................................................... 178 Nosql ............................................................................................................ 180 Redis ......................................................................................................... 181 MongoDB.................................................................................................. 182 Cassandra ................................................................................................. 184 CAPÍTULO 8. INTERNET............................................................................ 187 Introducción ................................................................................................. 187 TELNET y FTP ................................................................................................ 188 telnetlib .................................................................................................... 189 ftplib ......................................................................................................... 191 XML-RPC ....................................................................................................... 194 xmlrpc.server ............................................................................................ 195 xmlrpc.client ............................................................................................. 197 Correo electrónico........................................................................................ 198 pop3 ......................................................................................................... 199 smtp ......................................................................................................... 201 imap4........................................................................................................ 203 Web .............................................................................................................. 205 CGI ............................................................................................................ 206 WSGI ......................................................................................................... 208 Web scraping ............................................................................................ 210 urllib.request ........................................................................................ 211 lxml ....................................................................................................... 213 Frameworks .............................................................................................. 215 pyramid ................................................................................................ 215 pylatte .................................................................................................. 218 CAPÍTULO 9. INSTALACIÓN Y DISTRIBUCIÓN DE PAQUETES ..................... 221 Introducción ................................................................................................. 221 Instalación de paquetes ............................................................................... 222 Instalación desde la fuente....................................................................... 223 Gestores de paquetes............................................................................... 225 easy_install ........................................................................................... 226 pip......................................................................................................... 229 Distribución .................................................................................................. 233 Entornos virtuales ........................................................................................ 236 virtualenv ................................................................................................. 236 © RC Libros IX PYTHON 3 AL DESCUBIERTO virtualenvwrapper .................................................................................... 238 pip y los entornos virtuales ...................................................................... 239 CAPÍTULO 10. PRUEBAS UNITARIAS ........................................................ 241 Introducción ................................................................................................. 241 Conceptos básicos ........................................................................................ 242 UNITTEST ...................................................................................................... 243 DOCTEST ....................................................................................................... 245 Otros frameworks......................................................................................... 247 APÉNDICE A. EL ZED DE PYTHON ............................................................. 249 Traducción de “El zen de Python” ................................................................ 249 APÉNDICE B. CÓDIGO DE BUENAS PRÁCTICAS ......................................... 251 REGLAS ......................................................................................................... 251 REFERENCIAS .......................................................................................... 253 ÍNDICE ALFABÉTICO ................................................................................ 259 X © RC Libros