Excelente material que no se encuentra en otros textos. Además, los temas se desarrollan con ejemplos que son propios del autor, dado que no los he visto en toros textos de python. Además, tiene una redacción que hace amena la lectura. Gracias!
AnónimoPython 3 Tratamiento de los datos y técnicas de programación
1 opinión
Este libro sobre el lenguaje Python 3 está destinado a cualquier profesional de TI, ingeniero, estudiante, maestro o incluso una persona autodidacta que desee dominar este lenguaje muy avanzado. El objetivo de este libro es mostrar al lector lo que puede hacer con el lenguaje, desde el procesamiento de datos hasta la creación de un sitio web, a través del sistema y la red. Para comprender completamente su contenido, se recomienda leer primero el libro del cual este es la...
Consultar extractos del libro
Extracto del libro
- Nivel Medio a Experto
- Número de páginas 540 páginas
- Publicación mayo 2020
- Nivel Medio a Experto
- Publicación mayo 2020
Este libro sobre el lenguaje Python 3 está destinado a cualquier profesional de TI, ingeniero, estudiante, maestro o incluso una persona autodidacta que desee dominar este lenguaje muy avanzado. El objetivo de este libro es mostrar al lector lo que puede hacer con el lenguaje, desde el procesamiento de datos hasta la creación de un sitio web, a través del sistema y la red. Para comprender completamente su contenido, se recomienda leer primero el libro del cual este es la continuación, Python 3 - Los fundamentos del lenguaje con la misma editorial.
La primera parte cubre el procesamiento de datos con manipulación de archivos, archivos de configuración, formatos de importación/exportación, gestión de compresión o flujos XML o generación de documentos.
La segunda parte presenta la programación del sistema, la programación en red, la programación web y la programación científica, que son nichos en los que el lenguaje Python destaca tanto por su facilidad de uso como por su excepcional cobertura funcional.
La tercera parte presenta todas las herramientas de programación concurrente, ya sea programación asincrónica, paralela o distribuida. Tenga en cuenta que se pone el acento en muchas técnicas asincrónicas, ya que este es uno de los puntos principales en la evolución reciente del lenguaje Python.
El código fuente de los ejemplos del libro se puede descargar completamente desde www.ediciones-eni.com para permitir al lector probar el programa y modificarlo a su gusto para hacer sus propias experiencias.
La primera parte cubre el procesamiento de datos con manipulación de archivos, archivos de configuración, formatos de importación/exportación, gestión de compresión o flujos XML o generación de documentos.
La segunda parte presenta la programación del sistema, la programación en red, la programación web y la programación científica, que son nichos en los que el lenguaje Python destaca tanto por su facilidad de uso como por su excepcional cobertura funcional.
La tercera parte presenta todas las herramientas de programación concurrente, ya sea programación asincrónica, paralela o distribuida. Tenga en cuenta que se pone el acento en muchas técnicas asincrónicas, ya que este es uno de los puntos principales en la evolución reciente del lenguaje Python.
El código fuente de los ejemplos del libro se puede descargar completamente desde www.ediciones-eni.com para permitir al lector probar el programa y modificarlo a su gusto para hacer sus propias experiencias.
Descargas
Vista previa
- Introducción
Patrones de diseño
- Definición
- 1. Situación respecto a la noción deobjeto
- 2. Organización del capítulo
- 3. Situación respecto a otros conceptos
- Patrones de creación
- 1. Singleton
- 2. Fábrica
- 3. Fábrica abstracta
- 4. Constructor
- 5. Prototipo
- Patrones de estructuración
- 1. Adaptador
- 2. Puente
- 3. Composite
- 4. Decorador
- 5. Fachada
- 6. Peso mosca
- 7. Proxy
- Patrones de comportamiento
- 1. Cadena de responsabilidad
- 2. Solicitud
- 3. Iterador
- 4. Memento
- 5. Visitante
- 6. Observador
- 7. Estrategia
- 8. Función de callback
- ZCA
- 1. Consideraciones
- 2. Adaptador
- 3. Utilidad
- 4. Fábrica
- 5. Para ir más allá
XML
- XML y las tecnologías relacionadas
- 1. Definición de XML, terminologíaasociada
- 2. Noción de esquema
- 3. Ventajas e inconvenientes de XML
- 4. Distintas maneras de recorrer un archivo XML
- 5. Módulos Python dedicados a XML
- Validar un documento XML
- 1. Documento XML
- 2. Esquema DTD
- 3. Esquema XSD
- 4. Esquema RNG (RelaxNG)
- 5. Schematron
- DOM
- 1. Lectura
- 2. Escritura
- SAX
- 1. Soporte de SAX en lxml
- 2. API SAX ligera
- XPath
- XSLT
- El caso concreto de los archivos HTML
- 1. Problemática
- 2. Parsear un archivo HTML según DOM
- 3. Parsear un archivo HTML según SAX
Generación de contenido
- PDF
- 1. Presentación
- a. Formato PDF
- b. Ventajas
- c. Inconvenientes
- d. Presentación de la librería libre
- 1. Presentación
- 2. Bajo nivel
- a. Librería de datos
- b. Canvas
- 3. Alto nivel
- a. Estilos
- b. Flujo de datos
- c. Creación de un elemento visual
- d. Plantilla de página
- e. Página que contiene varias zonas
- 1. Presentación
- 2. ezodf2
- a. Instalación
- b. OpenDocument Texto
- c. OpenDocument Hoja de cálculo
- d. Ir más allá
- a. lpod
- b. Generación a partir de plantillas
- 1. Representación informática de unaimagen
- 2. Presentación de Pillow
- 3. Formatos de imágenes matriciales
- 4. Recuperar información de una imagen
- 5. Operaciones generales sobre una imagen
- 6. Trabajar con las capas o los píxeles
Calidad
- Desarrollo guiado por pruebas
- 1. Pruebas unitarias
- a. Principios
- b. Interpretación
- c. Cobertura
- d. Herramientas
- e. Otras herramientas
- 1. Pruebas unitarias
- 2. Pruebas de regresión
- a. Acciones de desarrollo
- b. Gestión de las anomalías detectadas
- 3. Pruebas funcionales
- 4. Pruebas de rendimiento
- 5. Pruebas sintácticas
- 6. Integración continua
- 1. Documentación interna
- a. Destinada a los desarrolladores
- b. Destinada a los usuarios
- a. Presentación
- b. Inicio rápido
- c. Resultado
- 1. Medir la calidad
- 2. Herramientas de depuración
- 3. Herramientas de perfilado
- 4. Reglas de optimización
- a. ¿Por qué optimizar?
- b. Reglas generales
- c. Optimizar un algoritmo
- d. Optimizar el uso de la memoria
Programación de sistema
- Presentación
- 1. Definición
- 2. Objetivos del capítulo
- Comprender su sistema operativo
- 1. Advertencia
- 2. Sistema operativo
- 3. Proceso actual
- 4. Usuarios y grupos
- 5. Contraseñas y autenticación
- 6. Constantes para el sistema de archivos
- 7. Administrar las rutas
- 8. Herramientas
- a. Comparar dos archivos
- b. Herramienta de copia de seguridad
- c. Leer un archivo de configuración
- d. Pickle
- 9. Comprimir y descomprimir un archivo
- a. Tarfile
- b. Gzip
- c. Bz2
- d. Zipfile
- e. Interfaz de alto nivel
- 1. Cambiar los permisos de un archivo
- 2. Cambiar de propietario o de grupo
- 3. Recuperar información de un archivo
- 4. Eliminar un archivo
- 1. Directorios
- 2. Archivos
- 3. Módulo de alto nivel
- 4. Búsqueda de un archivo
- 1. Ejecutar y mostrar el resultado
- 2. Ejecutar y recuperar el resultado
- 3. Para Python 3.5 y superior
- 1. Presentación
- 2. Trabajar con argumentos
- 3. Cierre del programa
- 4. Entrada estándar
- 5. Salida estándar
- 6. Salida de error
- 7. Tamaño del terminal
- 1. Presentación
- 2. Administrar el arranque y la parada
- 3. Visualización de texto
- 4. Gestión de los atributos
- 5. Gestión de los colores
- 6. Gestión de los eventos
- 1. Introducción
- 2. Ver las particiones
- 3. Ver las llaves USB
- 4. Lista de la información disponible
- 5. Detectar la conexión de una clave USB
- 6. Comunicar con un puerto en serie
- 7. Comunicar con un puerto USB
Programación de red
- Escribir un servidor y un cliente
- 1. Uso de un socket TCP
- 2. Uso de un socket UDP
- 3. Creación de un servidor TCP
- 4. Creación de un servidor UDP
- 5. Un poco más lejos sobre el tema
- Utilizar un protocolo estándar
- 1. Client HTTP
- 2. Servidor HTTP
- 3. Proxy
- 4. Cookies
- 5. FTP y SFTP
- 6. SSH
- 7. POP y POPS
- 8. IMAP y IMAPS
- 9. SMTP y SMPTS
- 10. NNTP
- 11. IRC
- Wake-on-LAN
- 1. Requisitos previos
- 2. Implementación
Programación web
- Servicios web
- 1. REST
- 2. SOAP
- 3. Pyro
- Cliente web
- Web scrapping
Programación científica
- Cálculo científico
- 1. Presentación
- 2. Python, una alternativa libre y creíble
- 3. Descripción general de algunas librerías
- Tablas multidimensionales
- 1. Creación
- 2. Determinar la composición de una tabla
- 3. Generadores de tablas
- 4. Operaciones básicas
- 5. Operador corchete
- Matrices
- Generación de gráficos
- 1. Sintaxis MATLAB
- 2. Sintaxis de objeto
- 3. Formateo
- 4. Gráficos 3D
- Introducción a Pandas
- 1. Presentación
- 2. Series
- 3. Dataframes
Iniciación a la programación concurrente
- Noción de rendimiento
- 1. Programación bloqueante
- 2. Utilización de recursos de CPU
- 3. Organización de la aplicación
- Terminología
- 1. Proceso
- 2. Hilo de ejecución
- 3. Programación no bloqueante
- 4. Noción de GIL
- Presentación de los paradigmas
- 1. Programación asíncrona
- 2. Programación en paralelo
- 3. Programación distribuida
- 4. Programación concurrente
Programación asíncrona: iniciación
- Utilidad de la programación asíncrona
- Introducción a la asincronía
- 1. Noción de subrutina
- 2. Ejecución de una subrutina
- 3. Precisiones sobre la palabra clave await
- 4. Ejecutar varias subrutinas en serie
- 5. Tareas asíncronas
- 6. Ejecutar las tareas asíncronas de maneraconcurrente
- 7. Noción de awaitable
- 8. Precisiones sobre asyncio.sleep
- Elementos de gramática
- 1. Administrador de contexto asíncrona
- 2. Generadores asíncronas
- 3. Comprensión asíncronas
- 4. Iteración asíncrona
- Nociones avanzadas
- 1. Introspección
- 2. Gestión del resultado o de la excepción
- 3. Anular una tarea
- 4. Protección contra una anulación
- 5. Timeouts
- 6. Gestión global afinada de la espera
- 7. Módulo contextvars
- Bucle orientado a eventos asíncrono
- 1. Gestión del bucle
- 2. Depuración
- 3. Noción de futuro
- 4. Anulación
- 5. Gestión de las excepciones
- Utilizar el bucle orientado a eventos
- 1. Utilización de las funciones de retorno (callbacks)
- 2. Planificar las llamadas a las funciones clásicas
- 3. Utilizar señales
- 4. Sincronización
- 5. Comunicación entre subrutinas
- 6. Ejemplo: lectura de la entrada estándar
- 7. Programación en paralelo y asíncrona
- 8. Ejecutar código bloqueante
- La asincronía según las versiones de Python
- 1. Python 3.7
- 2. Python 3.6
- 3. Python 3.5
- 4. Python 3.4
- 5. Python 3.3 e inferior
- 6. Python 2.7
- Caso concreto
- 1. Ejemplo de trabajo
- Ejemplo trabajado de nuevo usando los generadores
- 1. Descargar en modo asíncrono
- 2. Parsear en modo asíncrono
- 3. Hacer varios tratamientos en modo asíncrono
- 4. Utilizar un ejecutor
- 5. Para ir más lejos
Programación asíncrona: avanzada
- Transportes y protocolos
- 1. Introducción
- 2. Transportes
- 3. Protocolos
- 4. Implementación
- 5. Ejemplo para el protocolo TCP
- 6. Ejemplo para el protocolo SSL
- 7. Ejemplo para el protocolo UDP
- 8. Tratar el resto de tipos de protocolos de red
- 9. Ejemplo para Subprocess
- Flujo
- 1. Introducción
- 2. Ejemplo con el protocolo TCP
Programación asíncrona: alternativas
- Gevent
- 1. Introducción
- 2. DNS
- 3. Llamadas de sistema
- 4. Programación asíncrona
- Twisted
- 1. Introducción
- 2. Cliente/servidor TCP
- 3. Servidor/cliente UDP
- 4. AMP
- 5. Otros protocolos
- Trollius
- HTTP asíncrona con aiohttp
- 1. Lado servidor
- 2. Lado cliente
Programación en paralelo
- Utilización de un hilo de ejecución
- 1. Gestión de un hilo de ejecución
- a. Presentación
- b. Creación
- 1. Gestión de un hilo de ejecución
- 2. Gestión de varios hilos de ejecución
- a. Lanzamiento y control
- b. Oportunidad de utilizar un hilo de ejecución
- 3. Resolución de los problemas relacionados
- a. Sincronización
- b. Sincronización condicional
- c. Semáforo
- 1. Gestión de un proceso
- a. Presentación
- b. Creación
- a. Sincronización
- b. Paralelizar un trabajo
- a. Comunicación interproceso
- 1. Introducción
- 2. Presentación
Programación distribuida
- Definiciones
- ØMQ
- 1. Presentación general
- 2. Pair
- 3. Cliente/servidor
- 4. Publish/subscribe
- 5. PUSH/PULL
- 6. Patrón pipeline
- AMQP con RabbitMQ
- 1. Instalación
- 2. Configuración
- 3. Introducción
- 4. Nociones importantes
- 5. Publish/subscribe
- 6. Enrutamiento y temas
- Celery
- 1. Presentación
- 2. ¿En qué caso utilizar Celery?
- 3. Instalación
- 4. Configuración
- 5. Utilización
- 6. Monitorizar
- Crossbar
- 1. Presentación
- 2. WebSocket
- 3. Publish/subscribe
Sébastien CHAZALLET
Experto técnico en Python / Django / Odoo y Web Backend / Frontend, Sébastien Chazallet colabora como independiente en amplias misiones de desarrollo, de auditoría, como experto y en formación. Sus realizaciones impactan a desarrollos en torno a Python para proyectos de gran envergadura, esencialmente para aplicaciones de intranet a medida basadas en Django y Odoo (ex Open ERP), y también para aplicaciones de escritorio, scripts de sistema, creación de sitios web o e-commerce.
Más información