Envíos gratis en compras superiores a $90.000

Python a fondo

$55.099

  • Envío gratis en compras superiores a $90.000
  • Autor: OSCAR RAMÍREZ JÍMENEZ
    Páginas: 648
    Edición: 1
    Año de publicación: 2021
    Formato: 17×24 cms
    Coedición: Alfaomega – Marcombo

     

    Compra en hasta 12 pagos sin tarjeta con Mercado Pago
    ISBN: 9786075387437 Categoría:

    Descripción

    Python es el mejor lenguaje de programación tanto para novatos como para veteranos. Es usado en empresas y start-ups de primer nivel, y cada día es más demandado y reconocido mundialmente.
    Gracias a su carácter polivalente, Python se emplea en las FANG (Facebook, Amazon, Netflix y Google), en scripts simples, aplicaciones de domótica, programación de aplicaciones de escritorio o aplicaciones web complejas que soportan miles de usuarios por segundo, como Instagram o YouTube.

    Si quiere conocer a fondo este maravilloso lenguaje de programación, aprender a programar en un lenguaje de primer nivel y expandir su conocimiento sobre los lenguajes que conoce, este es su libro. En él se exploran todo tipo de conceptos sobre Python:

    – Orígenes y evolución del lenguaje.
    – Conceptos fundamentales de programación: tipos y estructuras de datos, funciones, generadores, decoradores, excepciones, etc.
    – Programación orientada a objetos en Python.
    – Programación funcional.
    – Creación de scripts.
    – Manejo de bases de datos de diferentes tipos (SQL y noSQL) y ejemplos prácticos de cada una.
    – Gestión de dependencias, creación y manipulación de paquetes de Python.

    Asimismo, en este libro encontrará todo lo que necesita para ir un paso más allá y expandir su conocimiento, pues comprende los conceptos esenciales sobre protocolos de Internet, paralelismo y concurrencia en Python, desarrollo de aplicaciones web o de aplicaciones de escritorio, entre otros. Todo ello se acompaña de una aplicación de ejemplo, explicada de forma clara y extensa en cada apartado.

    Además, el libro cuenta con multitud de casos e incluye un repositorio de código para entrar en profundidad en los ejemplos desarrollados: www.github.com/Marcombo/python-a-fondo.

    Además, el libro cuenta con multitud de casos e incluye un repositorio de código para entrar en profundidad en los ejemplos desarrollados.

    Si quiere conocer todo el potencial que ofrece este lenguaje, mejorar su conocimiento y aumentar sus cualidades como programador, no lo dude, este libro le guiará en el camino para convertirse en pythonista.

    Óscar Ramírez es ingeniero en Informática y pythonista experimentado, que ha orientado su carrera profesional al desarrollo de aplicaciones en Python en múltiples campos desde 2013. Ha contribuido al desarrollo de proyectos en empresas privadas y de software libre en proyectos como Apertium o Django.

    Es también autor del sitio web www.elpythonista.com y conferenciante en eventos de programación nacionales e internacionales, como PyConEs o Codemotion.

    ÍNDICE

    CAPÍTULO 1
    INTRODUCCIÓN AL LENGUAJE PYTHON ………………………………………. 1
    1 Introducción………………………………………………………………………………… 2
    1.1 Evolución de las versiones de Python ………………………………….. 2
    1.2 Características principales de los lenguajes de programación … 4
    1.2.1 Generaciones y niveles de abstracción de los lenguajes de programación . 5
    1.2.2Paradigmas ………………………………………………………………. 6
    1.2.3 Clasificación de lenguajes según su tipado ……………….. 7
    1.2.4 Características de Python …………………………………………. 7
    1.3 Ámbitos de uso de Python …………………………………………………… 10
    1.3.1 Programación a nivel de sistema operativo ………………. 10
    1.3.2 Aplicaciones con interfaz de usuario ………………………… 10
    1.3.3 Aplicaciones web e interacción con servicios web………. 11
    1.3.4 Interacción con servicios de Internet ……………………….. 12
    1.3.5 Gestión de contenido ……………………………………………….. 13
    1.3.6 Aplicaciones científicas y manejo de datos……………….. 14
    1.3.7 Inteligencia artificial y Python …………………………………. 15
    1.4 Python Enhancement Proposals (PEP) ………………………………… 17
    1.4.1 Proceso de creación de una PEP………………………………… 17
    1.5 PEP-8: Guía de estilos ………………………………………………………….. 19
    1.5.1Indentación ……………………………………………………………… 19
    1.5.2 Longitud de líneas ……………………………………………………. 19
    1.5.3 Espacios, saltos de línea y líneas en blanco ………………. 20
    1.5.4 Otros consejos generales ………………………………………….. 21
    1.5.5 Comentarios y documentación de código …………………. 22
    1.5.6 Convención de nombres …………………………………………… 22
    1.5.7 Herramientas para cumplir con la PEP-8 ………………….. 24
    1.6 PEP-20: Zen de Python ………………………………………………………… 24
    1.7 Compañías que usan productos creados en Python……………… 26
    1.8 Posición de Python entre los lenguajes de programación …….. 28
    1.9 Python 2 vs Python 3 ………………………………………………………….. 30
    1.9.1 str, bytes y Unicode …………………………………………… 30
    1.9.2 Comparaciones de tipos no ordenables …………………….. 31
    1.9.3 Operaciones numéricas diferentes……………………………. 31
    1.9.4 Iteradores por defecto ………………………………………………. 32
    1.9.5Función print ………………………………………………………… 32
    1.9.6 Migrar de Python 2 a Python 3 …………………………………. 33
    1.10 Instalación de Python en diferentes sistemas operativos …….. 35
    1.10.1 Instalación en Linux…………………………………………………. 35
    1.10.2 Instalación en Windows …………………………………………… 37
    1.10.3 Instalación en Mac OS X …………………………………………… 38
    1.11 Distribuciones de Python…………………………………………………….. 39
    1.11.1Anaconda …………………………………………………………………. 40
    1.11.2WinPython ………………………………………………………………. 41
    1.11.3Enthought Canopy …………………………………………………… 42
    1.11.4ActivePython……………………………………………………………. 43
    1.12 Instalación de librerías y módulos en Python………………………. 43
    1.13 Manejo de entornos virtuales………………………………………………. 46
    1.14 Intérpretes interactivos (REPL)……………………………………………. 47
    1.14.1Python……………………………………………………………………… 48
    1.14.2IPython ……………………………………………………………………. 48
    1.14.3bpython……………………………………………………………………. 49
    1.14.4ptpython ………………………………………………………………….. 49
    1.14.5Intérpretes online…………………………………………………….. 50
    1.15 El intérprete de Python ……………………………………………………….. 50
    1.15.1 Estructura del intérprete de Python …………………………. 51
    1.16 Implementaciones de Python ……………………………………………… 52
    1.16.1CPython …………………………………………………………………… 53
    1.16.2Jython ………………………………………………………………………. 53
    1.16.3PyPy …………………………………………………………………………. 53
    1.16.4IronPython ………………………………………………………………. 54
    1.17 Desarrollar programas en Python (IDE)……………………………….. 54
    1.17.1 Entornos de desarrollo open source………………………….. 55
    1.17.2 Entornos de desarrollo de código cerrado …………………. 64
    1.17.3 Comentario general sobre IDE ………………………………….. 67
    1.18 Primeros programas en Python ……………………………………………. 67
    1.18.1 Ejecutar programas en el REPL de Python ………………… 67
    1.18.2 Usar Jupyter Notebook……………………………………………… 68
    1.18.3 Primeros programas ejecutados desde ficheros …………. 71

    CAPÍTULO 2
    VARIABLES Y TIPOS DE DATOS ………………………………………………………. 75
    1 Introducción a los tipos de datos …………………………………………………. 75
    2 Literales, variables y datos en Python ………………………………………….. 77
    2.1Literales ………………………………………………………………………………. 78
    2.2 Variables e identificadores …………………………………………………… 79
    2.3 Gestión de memoria en Python …………………………………………… 83
    2.4 Mutabilidad de variables ……………………………………………………… 85
    3Tipos booleanos …………………………………………………………………………… 86
    3.1 Operaciones con booleanos …………………………………………………. 87
    3.2Cortocircuito lógico …………………………………………………………….. 87
    4Comparaciones ……………………………………………………………………………. 88
    5Tipos numéricos ………………………………………………………………………….. 89
    5.1 Operaciones numéricas básicas …………………………………………… 89
    5.2Enteros ……………………………………………………………………………….. 90
    5.3 Operaciones a nivel de bits con enteros ………………………………. 95
    5.4 Números de coma flotante ………………………………………………….. 95
    5.5Números complejos …………………………………………………………….. 99
    5.6 Utilizar distintos tipos numéricos ……………………………………….. 101
    6Secuencias …………………………………………………………………………………… 101
    6.1Listas …………………………………………………………………………………… 102
    6.2Tuplas………………………………………………………………………………….. 107
    6.3Rangos ………………………………………………………………………………… 109
    6.4 Selección de subsecuencias basadas en índices (slices) ……….. 113
    6.5 Operaciones predefinidas para secuencias …………………………… 114
    7 Secuencias de caracteres ……………………………………………………………… 115
    7.1 Construir cadenas de caracteres ………………………………………….. 120
    7.2 Convertir caracteres a números y viceversa …………………………. 121
    7.3 Operaciones de búsqueda de caracteres y conteo ………………….. 122
    7.4 Operaciones relacionadas con el tamaño de letra ………………….. 123
    7.5 Operaciones de identificación de cadenas …………………………….. 125
    7.6 Operaciones relacionadas con la codificación………………………… 131
    7.7 Traducciones, reemplazos y mapeos…………………………………….. 133
    7.8 Funciones de manipulación de cadenas: limpiado, división y unión de cadenas . 135
    7.9 Funciones de justificado y alineación de cadenas de caracteres … 139
    7.10 Formatear cadenas de caracteres …………………………………………. 141
    7.11 Diferentes subtipos de cadenas……………………………………………. 144
    7.12 Cadenas f-string en profundidad …………………………………………. 146
    7.13 Introducción al minilenguaje de formateado de strings……….. 149
    7.14 Función para imprimir caracteres (print) …………………………. 153
    8 Secuencias binarias ……………………………………………………………………… 155
    8.1 Qué son los datos binarios …………………………………………………… 155
    8.2Tipos bytes y bytearray ………………………………………………… 156
    8.3Operaciones con bytes y bytearray……………………………….. 159
    8.4 Cadenas de literales de bytes (byte literals) ………………………. 161
    9Conjuntos (set y frozenset )…………………………………………………… 163
    9.1 Funciones de actualización de conjuntos …………………………….. 164
    9.2 Funciones para operar conjuntos…………………………………………. 166
    9.3 Operaciones condicionales para conjuntos ………………………….. 167
    10Mapas (diccionarios) ……………………………………………………………………. 168
    10.1 Explorar valores de diccionarios ………………………………………….. 172
    10.2 Actualizar valores en diccionarios ……………………………………….. 174
    10.3 Objetos de tipo vista en diccionarios (view objects) …………….. 177
    11 Iterables e iteradores ……………………………………………………………………. 179
    11.1 Operadores para trabajar con iterables…………………………………. 182
    12Expresiones generadoras ……………………………………………………………… 188
    12.1 Inicializar tipos por comprensión ………………………………………… 190
    12.2 Inicializar objetos con expresiones generadoras…………………… 194

    CAPÍTULO 3
    FUNDAMENTOS DEL LENGUAJE …………………………………………………….. 195
    1 Asignaciones simples y múltiples ………………………………………………… 195
    1.1Asignaciones simples ………………………………………………………….. 196
    1.2 Asignaciones de múltiples variables…………………………………….. 196
    1.3Asignaciones múltiples ……………………………………………………….. 198
    1.4 Asignaciones slicing con * …………………………………………………… 199
    2 Control de flujo de ejecución ……………………………………………………….. 199
    2.1 Control de flujo condicional con las sentencias if, elif y else………….. 200
    2.2 Implementaciones de switch case en Python ………………………. 201
    2.3 Structural pattern matching ………………………………………………… 202
    2.4Sentencia if ternaria ………………………………………………………….. 204
    3 Flujo de ejecución con bucles ………………………………………………………. 204
    3.1Analizando bucles while ……………………………………………………. 204
    3.2 Usar bucles con sentencia for ……………………………………………. 206
    3.3 Control de flujo dentro de bucles: break y continue……….. 209
    4 Operador walrus para asignar ………………………………………………………. 210
    5 Funciones en Python. …………………………………………………………………… 211
    5.1 Ejemplo de modularización de código………………………………….. 214
    5.2 Parámetros y argumentos en funciones……………………………….. 215
    5.3Uso de args y kwargs……………………………………………………….. 219
    5.4 Anotaciones y tipado en las funciones…………………………………. 221
    5.5Funciones recursivas …………………………………………………………… 223
    5.6 Funciones anónimas: expresiones lambda …………………………… 228
    5.7 Funciones de orden superior ……………………………………………….. 231
    5.8 Funciones dentro de funciones ……………………………………………. 232
    5.9 Espacio de nombres y contextos ………………………………………….. 234
    5.10Memoización ………………………………………………………………………. 237
    5.11Decoradores ………………………………………………………………………… 238
    5.12 Documentación de funciones………………………………………………. 242
    5.13Funciones generadoras ………………………………………………………… 243
    5.14Corrutinas …………………………………………………………………………… 244
    5.15Funciones asíncronas ………………………………………………………….. 250
    6Excepciones …………………………………………………………………………………. 253
    6.1 Controlar el flujo de ejecución con excepciones ………………….. 253
    6.2 Utilizar las trazas de error ……………………………………………………. 255
    6.3Excepciones conocidas ………………………………………………………… 257
    6.4 Elevar excepciones de forma manual …………………………………… 270
    6.5 Definición de excepciones propias ………………………………………. 270

    CAPÍTULO 4
    PROGRAMACIÓN ORIENTADA A OBJETOS ……………………………………. 273
    1 Definición de clase ………………………………………………………………………. 274
    2Atributos ……………………………………………………………………………………… 274
    2.1Inicializar clases ………………………………………………………………….. 275
    2.2 Operar con los atributos………………………………………………………. 276
    2.3 Atributos de clases ………………………………………………………………. 277
    3 Nombres y privacidad en clases……………………………………………………. 280
    4 Construcción de clases personalizadas…………………………………………. 282
    5 Propiedades en clases ………………………………………………………………….. 284
    6 Métodos ………………………………………………………………………………………. 289
    6.1 Métodos de instancia ………………………………………………………….. 289
    6.2 Métodos de clase …………………………………………………………………. 290
    6.3 Métodos estáticos ……………………………………………………………….. 292
    7 Métodos mágicos …………………………………………………………………………. 293
    7.1 Métodos para usar operaciones matemáticas ………………………. 297
    7.2Emular contenedores…………………………………………………………… 302
    7.3 Personalizar el acceso a los atributos …………………………………… 307
    7.4 Información sobre funciones definidas por el usuario …………. 310
    8 Controlar el espacio de atributos con slots ……………………………….. 313
    9 Duck typing o polimorfismo ………………………………………………………… 314
    10 namedtuple ………………………………………………………………………………. 316
    11 dataclasses…………………………………………………………………………….. 319
    12Herencia ……………………………………………………………………………………… 323
    12.1 Herencia simple y el uso de super ……………………………………….. 326
    12.2Herencia múltiple ……………………………………………………………….. 329
    12.3Clases Mixin ………………………………………………………………………… 335
    13Metaclases y type ………………………………………………………………………. 338
    13.1 Creación de metaclases propias …………………………………………… 341
    14 Entonces, ¿cuándo se deben usar clases? ……………………………………… 343

    CAPÍTULO 5
    ESTRUCTURA DE CÓDIGO EN PYTHON ………………………………………… 345
    1 Diferentes componentes de un módulo ……………………………………….. 346
    2 Estructura básica de los paquetes …………………………………………………. 347
    2.1 Importación de código Python …………………………………………….. 348
    2.2 Potenciales problemas de usar import *……………………………….. 351
    2.3 Evitar problemas al importar con importaciones cíclicas ……… 353
    2.4 Importar contenido en __init__.py ……………………………….. 357
    3 Repositorios de paquetes……………………………………………………………… 359
    3.1 Estructura de un paquete de Python ……………………………………. 359
    4 Paquetes disponibles en la librería estándar…………………………………. 360

    CAPÍTULO 6
    PERSISTENCIA DE DATOS EN FICHEROS……………………………………….. 381
    1 Ficheros de texto plano………………………………………………………………… 381
    1.1 Trabajar con ficheros sin estructura …………………………………….. 382
    1.2 Trabajar con ficheros de anchura definida ……………………………. 390
    1.3 Trabajar con ficheros en formato CSV y TSV…………………………. 394
    1.4XML …………………………………………………………………………………….. 402
    1.5HTML ………………………………………………………………………………….. 407
    1.6JSON ……………………………………………………………………………………. 417
    1.7YAML ………………………………………………………………………………….. 424
    1.8 Librerías con todo incluido – tablib y pandas …………………. 426
    2Ficheros binarios …………………………………………………………………………. 429
    2.1 Serialización de objetos Python – pickle …………………………… 430
    2.2 Persistiendo diccionarios – shelve …………………………………….. 433
    3 Compresión y archivación de ficheros …………………………………………. 435
    3.1 Comprimir ficheros en archivos ZIP – zipfile …………………….. 436
    3.2 Archivación y compresión de ficheros – tarfile …………………. 440

    CAPÍTULO 7
    PERSISTENCIA EN BASES DE DATOS ……………………………………………… 445
    1 Interfaz para trabajar con bases de datos DB-API …………………………. 446
    1.1 Funciones básicas para todos los conectores ……………………….. 446
    1.2 Capa de abstracción de bases de datos en Python – pydal …… 448
    1.3 Librería para consultas SQL en crudo – records………………… 451
    2 Bases de datos relacionales o SQL ………………………………………… 453
    2.1 Conceptos básicos de las bases de datos relacionales …………… 455
    2.2 Sentencias básicas en SQL …………………………………………………… 457
    2.3 SQLite y Python…………………………………………………………………… 460
    2.4 Diferentes bases de datos profesionales ………………………………. 466
    3 Mapeo de objetos relacionales – ORM…………………………………….. 472
    3.1SQLAlchemy ORM ………………………………………………………………. 473
    3.2Peewee ORM ……………………………………………………………………….. 475
    3.3Pony ORM …………………………………………………………………………… 477
    3.4Django models …………………………………………………………………….. 477
    3.5 ORM asíncrono GINO ………………………………………………………….. 479
    4 Bases de datos NoSQL …………………………………………………………… 479
    4.1 Bases de datos clave-valor ……………………………………………………. 480
    4.2 Bases de datos orientadas a documentos……………………………… 480
    4.3 Bases de datos en tiempo real ……………………………………………… 482
    4.4 Bases de datos para series temporales …………………………………. 482
    4.5 Bases de datos orientadas a grafos de datos …………………………. 483
    4.6 Bases de datos columnares ………………………………………………….. 485
    4.7 Bases de datos para búsquedas de texto – Full-text databases . 486
    5 Sistemas de clave-valor y cachés en Python – dbm, Memcached y Redis. 487
    5.1 Usar dbm en Python ……………………………………………………………. 488
    5.2 Memcached en Python………………………………………………………… 490
    5.3 Usar Redis como base de datos y caché en Python ………………. 492
    6 Bases de datos en la nube…………………………………………………………….. 496
    6.1 Servicios de bases de datos en la nube …………………………………. 496

    CAPÍTULO 8
    PARALELISMO Y CONCURRENCIA ………………………………………………… 501
    1 Procesos en Python ……………………………………………………………………… 505
    1.1 Lanzar procesos externos – subprocess ……………………………. 505
    1.2 Múltiples procesos en Python – multiprocessing ………….. 509
    2 Hilos en Python …………………………………………………………………………… 517
    2.1 GIL en CPython …………………………………………………………………… 518
    2.2 Hilos en Python – threading ……………………………………………. 519
    3 Ejecuciones de hilos y de procesos – concurrent futures ………………. 526
    4 Asincronía de entrada/salida – Asynchronous I/O ……………………….. 528
    4.1 AsyncIO en Python ……………………………………………………………… 529

    CAPÍTULO 9
    INTERFACES DE USUARIO ……………………………………………………………… 539
    1 Interfaz con consola de comandos en Python – CUI …………………….. 540
    1.1 input y print – E/S estándar……………………………………………. 540
    1.2 CLI estándar – argsparse …………………………………………………. 541
    1.3 Interfaces de usuario basadas en texto ………………………………… 544
    2 Interfaces gráficas de usuario – GUI……………………………………………… 547
    3 Tkinter a fondo ……………………………………………………………………………. 549
    3.1 Componentes principales de una aplicación tkinter ……….. 550
    3.2Componentes disponibles …………………………………………………… 551
    3.3 Disposición y propiedades de elementos en tkinter ………… 552
    3.4 Manejo de eventos en tkinter …………………………………………. 553
    3.5 Organización de la aplicación ………………………………………………. 554
    4 Ejemplos de aplicaciones creadas con tkinter ………………………….. 558
    4.1 Calculadora de porcentajes creada con tkinter ………………….. 558
    4.2 Analizador de ficheros de texto creado con tkinter ………….. 563

    CAPÍTULO 10
    SERVICIOS DE RED Y APLICACIONES WEB ……………………………………. 571
    1 Protocolos de Internet y Python…………………………………………………… 571
    1.1 Transferencia de hipertexto – http y https……………………….. 573
    1.2 Transmisión de ficheros – FTP …………………………………………….. 576
    1.3 Conexiones entre servidores – Telnet ………………………………….. 580
    1.4 Conexiones seguras entre servidores – SSH y SFTP ……………… 583
    1.5 Correo electrónico – SMTP ………………………………………………….. 587
    2Desarrollo web …………………………………………………………………………….. 593
    2.1 Participantes en la web ……………………………………………………….. 593
    2.2 Trabajando con protocolo http (request-response) ……………. 595
    2.3 Estructura de las aplicaciones web en Python ……………………… 599
    2.4 Servidor simple creado con http.server …………………………. 602
    2.5 Frameworks web en Python ………………………………………………… 603
    3 Desarrollando un blog con Django ……………………………………………….. 607
    3.1 Planteamiento de la aplicación a realizar …………………………….. 607
    3.2 Primeros pasos con Django ………………………………………………….. 609
    3.3 Primera aplicación con Django…………………………………………….. 611
    3.4 Modelos con Django ……………………………………………………………. 613
    3.5 Panel de administración de Django ……………………………………… 618
    3.6 Añadiendo contenido por defecto ……………………………………….. 622
    3.7 Desarrollando la lógica de la aplicación ……………………………….. 625
    3.8 Renderizado basado en plantillas ………………………………………… 626

    ANEXO A TESTEO Y COBERTURA DE APLICACIONES EN PYTHON . 629

    Ir a Arriba