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