Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Como promete el título, este libro te introducirá en uno de los lenguajes de programación más populares del mundo: Python: Python. Está dirigido tanto a programadores principiantes como a programadores más experimentados que quieran añadir Python a los lenguajes que ya conocen.

En la mayoría de los casos, es más fácil aprender un lenguaje informático que un lenguaje humano. Hay menos ambigüedad y menos excepciones que retener en la cabeza. Python es uno de los lenguajes informáticos más coherentes y claros. Equilibra la facilidad de aprendizaje, la facilidad de uso y la potencia expresiva.

Los lenguajes informáticos se componen dedatos (como los sustantivos en las lenguas habladas) y de instrucciones o código (como los verbos). Necesitas ambas cosas. En capítulos alternos, conocerás las estructuras básicas de código y datos de Python, aprenderás a combinarlas y llegarás a otras más avanzadas. Los programas que leas y escribas serán cada vez más largos y complejos. Utilizando una analogía con la carpintería, empezaremos con un martillo, clavos y trozos de madera. A lo largo de la primera mitad de este libro, introduciremos componentes más especializados, hasta llegar a los equivalentes de tornos y otras herramientas eléctricas.

No sólo aprenderás el lenguaje, sino también qué hacer con él. Empezaremos con el lenguaje Python y su biblioteca estándar "con pilas incluidas", pero también te mostraré cómo encontrar, descargar, instalar y utilizar algunos buenos paquetes de terceros. Hago hincapié en todo lo que realmente he encontrado útil en más de 10 años de desarrollo de Python en producción, en lugar de temas marginales o hacks complejos.

Aunque se trata de una introducción, se incluyen algunos temas avanzados porque quiero exponértelos. Se siguen cubriendo áreas como las bases de datos y la web, pero la tecnología cambia rápidamente. Ahora se puede esperar que un programador de Python sepa algo sobre computación en la nube, aprendizaje automático o streaming de eventos. Aquí encontrarás algo sobre todo ello.

Python tiene algunas características especiales que funcionan mejor que adaptar estilos de otros lenguajes que puedas conocer. Por ejemplo, utilizar for e iteradores es una forma más directa de hacer un bucle que incrementar manualmente alguna variable contadora.

Cuando estás aprendiendo algo nuevo, es difícil saber qué términos son específicos en lugar de coloquiales, y qué conceptos son realmente importantes. En otras palabras: "¿Esto está en el examen?" Destacaré términos e ideas que tengan un significado específico o importancia en Python, pero no demasiados a la vez. Se incluye código Python real al principio y a menudo.

Nota

Incluiré una nota como ésta cuando algo pueda resultar confuso, o si hay una forma pitónica más adecuada de hacerlo.

Python no es perfecto. Te mostraré cosas que parecen extrañas o que deberían evitarse, y te ofreceré alternativas que puedes utilizar en su lugar.

De vez en cuando, mis opiniones sobre algunos temas (como la herencia de objetos, o los diseños MVC y REST para la web) pueden variar un poco de la sabiduría común. A ver qué te parece.

Audiencia

Este libro está dirigido a cualquier persona interesada en aprender uno de los lenguajes informáticos más populares del mundo, independientemente de si ha aprendido previamente algún tipo de programación.

Cambios en la Segunda Edición

¿Qué ha cambiado desde la primera edición?

  • Unas cien páginas más, incluidas fotos de gatos.

  • El doble de capítulos, cada uno más corto ahora.

  • Un primer capítulo dedicado a los tipos de datos, variables y nombres.

  • Nuevas funciones estándar de Python, como las cadenas f.

  • Paquetes de terceros nuevos o mejorados.

  • Nuevos ejemplos de código.

  • Un apéndice sobre hardware y software básicos, para nuevos programadores.

  • Un apéndice sobre asyncio, para programadores no tan novatos.

  • Cobertura de la "nueva pila": contenedores, nubes, ciencia de datos y aprendizaje automático.

  • Consejos para conseguir un trabajo programando en Python.

¿Qué es lo que no ha cambiado? Los ejemplos que utilizan la mala poesía y los patos. Éstos son perennes.

Esquema

La Parte I (Capítulos 1-11) explica los fundamentos de Python. Debes leer estos capítulos en orden. Trabajo a partir de las estructuras de datos y código más sencillas, combinándolas por el camino en programas más detallados y realistas. La Parte II (Capítulos 12-22) muestra cómo se utiliza Python en áreas de aplicación específicas como la web, las bases de datos, las redes, etc.; lee estos capítulos en el orden que quieras.

Aquí tienes un breve avance de los capítulos y apéndices, incluidos algunos de los términos que encontrarás en ellos:

Capítulo 1, El sabor de Py

Los programas informáticos no son tan diferentes de las direcciones que ves todos los días. Algunos pequeños programas Python te dan una idea del aspecto, las capacidades y los usos del lenguaje en el mundo real. Verás cómo ejecutar un programa Python dentro de su intérprete interactivo(o shell), o desde un archivo de texto guardado en tu ordenador.

Capítulo 2, Datos: Tipos, valores, variables y nombres

Los lenguajes informáticos mezclan datos e instrucciones. Los distintos tipos de datos son almacenados y tratados de forma diferente por el ordenador. Pueden permitir que sus valores cambien(mutables) o no(inmutables). En un programa Python, los datos pueden ser literales(números como 78, cadenas de texto como "waffle") o representados por variables con nombre. Python trata las variables como nombres, lo que es diferente de muchos otros lenguajes y tiene algunas consecuencias importantes.

Capítulo 3, Números

Este capítulo muestra los tipos de datos más sencillos de Python:booleanos, enteros y números en coma flotante. También aprenderás las operaciones matemáticas básicas. Los ejemplos utilizan el intérprete interactivo de Python como si fuera una calculadora.

Capítulo 4, Elige con si

Iremos rebotando entre los sustantivos (tipos de datos) y los verbos (estructuras de programa) de Python durante unos cuantos capítulos. El código Python normalmente se ejecuta una línea cada vez, desde el principio hasta el final de un programa. La estructura de código if te permite ejecutar diferentes líneas de código, en función de alguna comparación de datos.

Capítulo 5, Cadenas de texto

Volvemos a los sustantivos y al mundo de las cadenas de texto. Aprende a crear, combinar, modificar, recuperar e imprimir cadenas.

Capítulo 6, Bucle con while y for

Verbos de nuevo, y dos formas de hacer un bucle:for y while. Te presentaremos un concepto básico de Python: los iteradores.

Capítulo 7, Tuplas y listas

Es hora de la primera de las estructuras de datos incorporadas de alto nivel de Python:lists y tuples. Son secuencias de valores, como LEGO para construir estructuras de datos mucho más complejas. Recórrelas con iteradores y construye listas rápidamente con comprensiones.

Capítulo 8, Diccionarios y conjuntos

Los diccionarios (también conocidos como dicts) y los conjuntoste permiten guardar datos por sus valores en lugar de por su posición. Esto resulta muy práctico y estará entre tus funciones favoritas de Python.

Capítulo 9, Funciones

Teje las estructuras de datos y código de los capítulos anteriores para comparar, elegir o repetir. Empaqueta el código en funcionesy maneja los errores con excepciones.

Capítulo 10, Oh Oh: Objetos y clases

La palabra objeto es un poco confusa, pero importante en muchos lenguajes informáticos, incluido Python. Si has hecho programación orientada a objetosen otros lenguajes, Python es un poco más relajado. Este capítulo explica cómo utilizar objetos y clases, y cuándo es mejor utilizar alternativas.

Capítulo 11, Módulos, paquetes y golosinas

Este capítulo muestra cómo escalar a estructuras de código mayores:módulos, paquetes y programas. Verás dónde colocar el código y los datos, cómo introducir y extraer datos, manejar opciones, recorrer la Biblioteca Estándar de Python y echar un vistazo a lo que hay más allá.

Capítulo 12, Manipular y enredar datos

Aprende a manejar (o manipular) datos como un profesional. Este capítulo trata sobre los datos de texto y binarios, la alegría con caracteres Unicode y la búsqueda de texto regex. También presenta los tipos de datosbytes y bytearray, homólogos de las cadenas que contienen valores binarios sin procesar en lugar de caracteres de texto.

Capítulo 13, Calendarios y relojes

Las fechas y horas pueden ser complicadas de manejar. Este capítulo muestra problemas habituales y soluciones útiles.

Capítulo 14, Ficheros y directorios

El almacenamiento básico de datos utiliza archivos y directorios. Este capítulo te muestra cómo crearlos y utilizarlos.

Capítulo 15, Datos en el tiempo: Procesos y concurrencia

Este es el primer capítulo dedicado al núcleo duro del sistema. Su tema son los datos en el tiempo: cómo utilizarprogramas, procesos e hilospara hacer más cosas a la vez(concurrencia). Se mencionan las recientes incorporaciones asíncronas de Python, con detalles en el Apéndice C.

Capítulo 16, Los datos en una caja: Almacenamiento persistente

Los datos pueden almacenarse y recuperarse con archivos planos básicos y directorios dentro de sistemas de archivos. Adquieren cierta estructura con formatos de texto comunes como CSV, JSON y XML. A medida que los datos se hacen más grandes y complejos, necesitan los servicios de lasbases de datos:las relacionalestradicionalesy algunos almacenes de datos NoSQL más recientes.

Capítulo 17, Datos en el espacio: Redes

Envía tu código y tus datos a través del espacio en redescon servicios, protocolos y API. Los ejemplos van desde sockets TCP de bajo nivel, a bibliotecas de mensajería y sistemas de colas, pasando por la implementación en la nube.

Capítulo 18, La red, desenredada

La Web tiene su propio capítulo: clientes, servidores, API y frameworks. Rastrearás y rasparás sitios web, y luego construirás sitios web reales con parámetros depetición y plantillas.

Capítulo 19, Ser pitonista

Este capítulo contiene consejos para desarrolladores de Python: instalación con pip y virtualenv, uso de IDE, pruebas, depuración, registro, control de código fuente y documentación. También te ayuda a encontrar e instalar paquetes útiles de terceros, empaquetar tu propio código para reutilizarlo y saber dónde obtener más información.

Capítulo 20, Arte Py

La gente está haciendo cosas geniales con Python en las artes: gráficos, música, animación y juegos.

Capítulo 21, Py en el trabajo

Python tiene aplicaciones específicas para las empresas: visualización de datos (diagramas, gráficos y mapas), seguridad y regulación.

Capítulo 22, Py Sci

En los últimos años, Python se ha convertido en un lenguaje puntero para la ciencia: matemáticas y estadística, ciencias físicas, biociencia y medicina.La ciencia de datos y el aprendizaje automático son puntos fuertes notables. Este capítulo trata sobre NumPy, SciPy y Pandas.

Apéndice A, Hardware y software para programadores principiantes

Si eres bastante nuevo en programación, aquí se describe cómo funcionan realmente el hardware y el software, y se introducen algunos términos con los que te seguirás encontrando.

Apéndice B, Instalar Python 3

Si aún no tienes Python 3 en tu ordenador, este apéndice te muestra cómo instalarlo, tanto si utilizas Windows, macOS, Linux o alguna otra variante de Unix.

Apéndice C, Algo completamente distinto: Async

Python ha ido añadiendo funciones asíncronas en diferentes versiones, y no son fáciles de entender. Las menciono a medida que aparecen en varios capítulos, pero reservo una discusión detallada para este apéndice.

Apéndice D, Respuestas a los ejercicios

Aquí tienes las respuestas a los ejercicios de final de capítulo. No mires aquí hasta que hayas probado los ejercicios por ti mismo, o podrías convertirte en un tritón.

Apéndice E, Fichas

Este apéndice contiene fichas de ayuda que puedes utilizar como referencia rápida.

Versiones de Python

Los lenguajes informáticos cambian con el tiempo a medida que los desarrolladores añaden funciones y corrigen errores. Los ejemplos de este libro se escribieron y probaron mientras se ejecutaba la versión 3.7 de Python. La versión 3.7 era la más actual en el momento de editar este libro, y hablaré de sus notables adiciones. La versión 3.8 está programada para su lanzamiento general a finales de 2019, e incluiré algunas cosas que puedes esperar de ella. Si quieres saber qué se ha añadido a Python y cuándo, prueba lapágina Novedades de Python. Es una referencia técnica; un poco pesada cuando acabas de empezar con Python, pero puede ser útil en el futuro si alguna vez tienes que hacer que los programas funcionen en ordenadores con diferentes versiones de Python.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como variables, funciones y tipos de datos.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Nota

Este icono significa un consejo, sugerencia o nota general.

Advertencia

Este icono indica una advertencia o precaución.

Utilizar ejemplos de código

Los importantes ejemplos de código y ejercicios de este libro estándisponibles en línea para que los descargues. En general, puedes utilizar el código de este libro en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.

Agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: "Introducing Python by Bill Lubanovic (O'Reilly). Copyright 2020 Bill Lubanovic, 978-1-492-05136-7".

Si crees que el uso que haces de los ejemplos de código queda fuera del uso justo o del permiso aquí concedido, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación, conocimientos y perspectivas sobre tecnología y negocios para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos, conferencias y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/introducing-python-2e.

Para hacer comentarios o preguntas técnicas sobre este libro, envía un correo electrónico a

Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.

Encuéntranos en Facebook: http://facebook.com/oreilly

Síguenos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://www.youtube.com/oreillymedia

Agradecimientos

Mi más sincero agradecimiento a los revisores y lectores que han contribuido a mejorarlo:

Corbin Collins, Charles Givre, Nathan Stocks, Dave George y Mike James

Get Introducción a Python, 2ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.