Buch lesen: "Python a fondo"

Schriftart:

PYTHON A FONDO

Óscar Ramírez Jiménez

Acceda a www.marcombo.info para descargar gratis contenido adicional complemento imprescindible de este libro

Código: PYTHON6

PYTHON A FONDO

Óscar Ramírez Jiménez

Python a fondo

Primera edición, 2021

© 2021 Óscar Ramírez Jiménez

© 2021 MARCOMBO, S. L.

www.marcombo.com

Diseño de cubierta: ENEDENÚ DISEÑO GRÁFICO

Revisor técnico: Ferran Fábregas

Corrección: Haizea Beitia y Manel Fernández

Maquetación: D. Márquez

Directora de producción: M.a Rosa Castillo

«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».

ISBN: 978-84-267-3287-3

Producción del ePub: booqlab

Motivación y agradecimientos

Desde que era un niño siempre me gustó la idea de dejar huella en los demás y aportar mi granito de arena a la sociedad de una forma u otra, de ahí que desde que conocí el desarrollo de software, siempre haya tenido especial predilección por el software libre y el compartir el conocimiento con los demás.

En esta ocasión, el sentimiento de compartir el conocimiento con los demás me ha llevado a escribir lo que he aprendido en todos estos años de trabajo, desarrollando aplicaciones y creciendo como profesional, de la forma en la que me hubiera gustado aprenderlo cuando comencé mi carrera.

Por lo tanto, me gustaría agradecerles a todos los que han hecho posible este sueño, y dado que son muchísimas las personas las que han dejado huella en mí, desde profesores de universidad tanto de Málaga como de Horsens, compañeros de estudios, compañeros de trabajo, amigos, etc., no podría nombrarlas una a una sin olvidar a alguien, por lo que prefiero agradecerles a todas su apoyo. Aunque sí que me gustaría agradecer de forma especial a mi familia, la que me ha apoyado desde siempre con todos mis proyectos, estudios y en mi carrera profesional, y, cómo no, a mi compañera de viaje, la cual ha sufrido más que nadie el robo de horas que compartir juntos con el fin de poder realizar esta obra, gracias Salva.

Me gustaría también agradecer la oportunidad y la confianza depositada en mí por parte de la editorial Marcombo, la cual apostó por mí para este proyecto desde primera hora y siempre ha estado dispuesta cuando se ha necesitado.

ÍNDICE

CAPÍTULO 1 INTRODUCCIÓN AL LENGUAJE PYTHON

1 Introducción

1.1 Evolución de las versiones de Python

1.2 Características principales de los lenguajes de programación

1.2.1 Generaciones y niveles de abstracción de los lenguajes de programación

1.2.2 Paradigmas

1.2.3 Clasificación de lenguajes según su tipado

1.2.4 Características de Python

1.3 Ámbitos de uso de Python

1.3.1 Programación a nivel de sistema operativo

1.3.2 Aplicaciones con interfaz de usuario

1.3.3 Aplicaciones web e interacción con servicios web

1.3.4 Interacción con servicios de Internet

1.3.5 Gestión de contenido

1.3.6 Aplicaciones científicas y manejo de datos

1.3.7 Inteligencia artificial y Python

1.4 Python Enhancement Proposals (PEP)

1.4.1 Proceso de creación de un PEP

1.5 PEP-8: Guía de estilos

1.5.1 Indentación

1.5.2 Longitud de líneas

1.5.3 Espacios, saltos de línea y líneas en blanco

1.5.4 Otros consejos generales

1.5.5 Comentarios y documentación de código

1.5.6 Convención de nombres

1.5.7 Herramientas para cumplir con la PEP-8

1.6 PEP-20: Zen de Python

1.7 Compañías que usan productos creados en Python

1.8 Posición de Python entre los lenguajes de programación

1.9 Python 2 vs Python 3

1.9.1 str, bytes y Unicode

1.9.2 Comparaciones de tipos no ordenables

1.9.3 Operaciones numéricas diferentes

1.9.4 Iteradores por defecto

1.9.5 Función print

1.9.6 Migrar de Python 2 a Python 3

1.10 Instalación de Python en diferentes sistemas operativos

1.10.1 Instalación en Linux

1.10.2 Instalación en Windows

1.10.3 Instalación en Mac OS X

1.11 Distribuciones de Python

1.11.1 Anaconda

1.11.2 WinPython

1.11.3 Enthought Canopy

1.11.4 ActivePython

1.12 Instalación de librerías y módulos en Python

1.13 Manejo de entornos virtuales

1.14 Intérpretes interactivos (REPL)

1.14.1 Python

1.14.2 IPython

1.14.3 bpython

1.14.4 ptpython

1.14.5 Intérpretes online

1.15 El intérprete de Python

1.15.1 Estructura del intérprete de Python

1.16 Implementaciones de Python

1.16.1 CPython

1.16.2 Jython

1.16.3 PyPy

1.16.4 IronPython

1.17 Desarrollar programas en Python (IDE)

1.17.1 Entornos de desarrollo open source

1.17.2 Entornos de desarrollo de código cerrado

1.17.3 Comentario general sobre IDE

1.18 Primeros programas en Python

1.18.1 Ejecutar programas en el REPL de Python

1.18.2 Usar Jupyter Notebook

1.18.3 Primeros programas ejecutados desde ficheros

CAPÍTULO 2 VARIABLES Y TIPOS DE DATOS

1 Introducción a los tipos de datos

2 Literales, variables y datos en Python

2.1 Literales

2.2 Variables e identificadores

2.3 Gestión de memoria en Python

2.4 Mutabilidad de variables

3 Tipos booleanos

3.1 Operaciones con booleanos

3.2 Cortocircuito lógico

4 Comparaciones

5 Tipos numéricos

5.1 Operaciones numéricas básicas

5.2 Enteros

5.3 Operaciones a nivel de bits con enteros

5.4 Números de coma flotante

5.5 Números complejos

5.6 Utilizar distintos tipos numéricos

6 Secuencias

6.1 Listas

6.2 Tuplas

6.3 Rangos

6.4 Selección de subsecuencias basadas en índices (slices)

6.5 Operaciones predefinidas para secuencias

7 Secuencias de caracteres

7.1 Construir cadenas de caracteres

7.2 Convertir caracteres a números y viceversa

7.3 Operaciones de búsqueda de caracteres y conteo

7.4 Operaciones relacionadas con el tamaño de letra

7.5 Operaciones de identificación de cadenas

7.6 Operaciones relacionadas con la codificación

7.7 Traducciones, reemplazos y mapeos

7.8 Funciones de manipulación de cadenas: limpiado, división y unión de cadenas

7.9 Funciones de justificado y alineación de cadenas de caracteres

7.10 Formatear cadenas de caracteres

7.11 Diferentes subtipos de cadenas

7.12 Cadenas f-string en profundidad

7.13 Introducción al minilenguaje de formateado de strings

7.14 Función para imprimir caracteres (print)

8 Secuencias binarias

8.1 Qué son los datos binarios

8.2 Tipos bytes y bytearray

8.3 Operaciones con bytes y bytearray

8.4 Cadenas de literales de bytes (byte literals)

9 Conjuntos (set y frozenset)

9.1 Funciones de actualización de conjuntos

9.2 Funciones para operar conjuntos

9.3 Operaciones condicionales para conjuntos

10 Mapas (diccionarios)

10.1 Explorar valores de diccionarios

10.2 Actualizar valores en diccionarios

10.3 Objetos de tipo vista en diccionarios (view objects)

11 Iterables e iteradores

11.1 Operadores para trabajar con iterables

12 Expresiones generadoras

12.1 Inicializar tipos por comprensión

12.2 Inicializar objetos con expresiones generadoras

CAPÍTULO 3 FUNDAMENTOS DEL LENGUAJE

1 Asignaciones simples y múltiples

1.1 Asignaciones simples

1.2 Asignaciones de múltiples variables

1.3 Asignaciones múltiples

1.4 Asignaciones slicing con *

2 Control de flujo de ejecución

2.1 Control de flujo condicional con las sentencias if, elif y else

2.2 Implementaciones de switch case en Python

2.3 Sentencia if ternaria

3 Flujo de ejecución con bucles

3.1 Analizando bucles while

3.2 Usar bucles con sentencia for

3.3 Control de flujo dentro de bucles: break y continue

4 Operador walrus para asignar

5 Funciones en Python.

5.1 Ejemplo de modularización de código

5.2 Parámetros y argumentos en funciones

5.3 Uso de args y kwargs

5.4 Anotaciones y tipado en las funciones

5.5 Funciones recursivas

5.6 Funciones anónimas: expresiones lambda

5.7 Funciones de orden superior

5.8 Funciones dentro de funciones

5.9 Espacio de nombres y contextos

5.10 Memoización

5.11 Decoradores

5.12 Documentación de funciones

5.13 Funciones generadoras

5.14 Corrutinas

5.15 Funciones asíncronas

6 Excepciones

6.1 Controlar el flujo de ejecución con excepciones

6.2 Utilizar las trazas de error

6.3 Excepciones conocidas

6.4 Elevar excepciones de forma manual

6.5 Definición de excepciones propias

CAPÍTULO 4 PROGRAMACIÓN ORIENTADA A OBJETOS

1 Definición de clase

2 Atributos

2.1 Inicializar clases

2.2 Operar con los atributos

2.3 Atributos de clases

3 Nombres y privacidad en clases

4 Construcción de clases personalizadas

5 Propiedades en clases

6 Métodos

6.1 Métodos de instancia

6.2 Métodos de clase

6.3 Métodos estáticos

7 Métodos mágicos

7.1 Métodos para usar operaciones matemáticas

7.2 Emular contenedores

7.3 Personalizar el acceso a los atributos

7.4 Información sobre funciones definidas por el usuario

8 Controlar el espacio de atributos con slots

9 Duck typing o polimorfismo

10 namedtuple

11 dataclasses

12 Herencia

12.1 Herencia simple y el uso de super

12.2 Herencia múltiple

12.3 Clases Mixin

13 Metaclases y type

13.1 Creación de metaclases propias

14 Entonces, ¿cuándo se deben usar clases?

CAPÍTULO 5 ESTRUCTURA DE CÓDIGO EN PYTHON

1 Diferentes componentes de un módulo

2 Estructura básica de los paquetes

2.1 Importación de código Python

2.2 Potenciales problemas de usar import *

2.3 Evitar problemas al importar con importaciones cíclicas

2.4 Importar contenido en __init__.py

3 Repositorios de paquetes

3.1 Estructura de un paquete de Python

4 Paquetes disponibles en la librería estándar

CAPÍTULO 6 PERSISTENCIA DE DATOS EN FICHEROS

1 Ficheros de texto plano

1.1 Trabajar con ficheros sin estructura

1.2 Trabajar con ficheros de anchura definida

1.3 Trabajar con ficheros en formato CSV y TSV

1.4 XML

1.5 HTML

1.6 JSON

1.7 YAML

1.8 Librerías con todo incluido - tablib y pandas

2 Ficheros binarios

2.1 Serialización de objetos Python - pickle

2.2 Persistiendo diccionarios - shelve

3 Compresión y archivación de ficheros

3.1 Comprimir ficheros en archivos ZIP - zipfile

3.2 Archivación y compresión de ficheros - tarfile

CAPÍTULO 7 PERSISTENCIA EN BASES DE DATOS

1 Interfaz para trabajar con bases de datos DB-API

1.1 Funciones básicas para todos los conectores

1.2 Capa de abstracción de bases de datos en Python – pydal

1.3 Librería para consultas SQL en crudo – records

2 Bases de datos relacionales o SQL

2.1 Conceptos básicos de las bases de datos relacionales

2.2 Sentencias básicas en SQL

2.3 SQLite y Python

2.4 Diferentes bases de datos profesionales

3 Mapeo de objetos relacionales – ORM

3.1 SQLAlchemy ORM

3.2 Peewee ORM

3.3 Pony ORM

3.4 Django models

3.5 ORM asíncrono GINO

4 Bases de datos NoSQL

4.1 Bases de datos clave-valor

4.2 Bases de datos orientadas a documentos

4.3 Bases de datos en tiempo real

4.4 Bases de datos para series temporales

4.5 Bases de datos orientadas a grafos de datos

4.6 Bases de datos columnares

4.7 Bases de datos para búsquedas de texto - Full-text databases

5 Sistemas de clave-valor y cachés en Python - dbm, Memcached y Redis

5.1 Usar dbm en Python

5.2 Memcached en Python

5.3 Usar Redis como base de datos y caché en Python

6 Bases de datos en la nube

6.1 Servicios de bases de datos en la nube

CAPÍTULO 8 PARALELISMO Y CONCURRENCIA

1 Procesos en Python

1.1 Lanzar procesos externos - subprocess

1.2 Múltiples procesos en Python - multiprocessing

2 Hilos en Python

2.1 GIL en CPython

2.2 Hilos en Python - threading

3 Ejecuciones de hilos y de procesos - concurrent futures

4 Asincronía de entrada/salida – Asynchronous I/O

4.1 AsyncIO en Python

CAPÍTULO 9 INTERFACES DE USUARIO

1 Interfaz con consola de comandos en Python – CUI

1.1 input y print – E/S estándar

1.2 CLI estándar - argsparse

1.3 Interfaces de usuario basadas en texto

2 Interfaces gráficas de usuario - GUI

3 Tkinter a fondo

3.1 Componentes principales de una aplicación tkinter

3.2 Componentes disponibles

3.3 Disposición y propiedades de elementos en tkinter

3.4 Manejo de eventos en tkinter

3.5 Organización de la aplicación

4 Ejemplos de aplicaciones creadas con tkinter

4.1 Calculadora de porcentajes creada con tkinter

4.2 Analizador de ficheros de texto creado con tkinter

CAPÍTULO 10 SERVICIOS DE RED Y APLICACIONES WEB

1 Protocolos de Internet y Python

1.1 Transferencia de hipertexto - HTTP y HTTPS

1.2 Transmisión de ficheros – FTP

1.3 Conexiones entre servidores – Telnet

1.4 Conexiones seguras entre servidores – SSH y SFTP

1.5 Correo electrónico – SMTP

2 Desarrollo web

2.1 Participantes en la web

2.2 Trabajando con protocolo HTTP (request-response)

2.3 Estructura de las aplicaciones web en Python

2.4 Servidor simple utilizando http.server

2.5 Frameworks web en Python

3 Desarrollando un blog con Django

3.1 Planteamiento de la aplicación a realizar

3.2 Primeros pasos con Django

3.3 Primera aplicación con Django

3.4 Modelos con Django

3.5 Panel de administración de Django

3.6 Añadiendo contenido por defecto

3.7 Desarrollando la lógica de la aplicación

3.8 Renderizado basado en plantillas

ANEXO A TESTEO Y COBERTURA DE APLICACIONES EN PYTHON

Capítulo 1 INTRODUCCIÓN AL LENGUAJE PYTHON

Hoy día, la tecnología se ha vuelto un elemento fundamental para todos los seres humanos. Existen dispositivos que ayudan a realizar casi todas las actividades cotidianas, desde teléfonos inteligentes que resuelven cualquier duda en cuestión de segundos a miniordenadores que pueden ser integrados en pacientes como una prótesis, pasando por cohetes espaciales capaces de enviar robots fuera de nuestro planeta y recopilar información constantemente durante años. Muchos de estos componentes tecnológicos son operados por un software encargado de velar por su correcto funcionamiento y por su ejecución óptima. Por tanto, el desarrollo de este software es un pilar muy importante en la evolución de la tecnología y de la humanidad en su conjunto, además de ser un ámbito en auge que, se prevé, seguirá creciendo y necesitando de más expertos en los próximos años.

El software se compone de algoritmos. Estos no son más que la sucesión de comandos, programados en un lenguaje entendible de alguna forma por los humanos, que son transformados a un lenguaje que las máquinas pueden procesar y ejecutar con rapidez. El desarrollo del software se hace utilizando lenguajes de programación que se definen con una gramática específica (similar a un lenguaje hablado por los seres humanos) que define los comandos y la lógica que debe aplicar el sistema en cuestión bajo unos parámetros específicos. Existen multitud de lenguajes de programación, que difieren en sus propósitos y características. Encontraremos desde lenguajes de alto nivel (muy parecidos a los lenguajes que utilizamos para comunicarnos entre humanos) hasta lenguajes muy próximos al código máquina, pasando por lenguajes con un propósito puramente educacional o creados por simple diversión para los desarrolladores.

En este libro se darán las bases y los conceptos principales de uno de los mejores lenguajes de programación que existe hasta el momento, además de ser uno de los que se encuentra en mayor auge: el lenguaje de programación Python.

€21,99

Genres und Tags

Altersbeschränkung:
0+
Veröffentlichungsdatum auf Litres:
22 Oktober 2025
Umfang:
952 S. 737 Illustrationen
ISBN:
9788426732873
Verleger:
Rechteinhaber:
Bookwire
Download-Format: