Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
¿A quién va dirigido este libro?
Si quieres aprender a programar, has venido al lugar adecuado. Python es uno de los mejores lenguajes de programación para principiantes, y también uno de los conocimientos más demandados.
También has llegado en el momento oportuno, porque aprender a programar ahora es probablemente más fácil que nunca. Con asistentes virtuales como ChatGPT, no tienes por qué aprender solo. A lo largo de este libro, te sugeriré formas de utilizar estas herramientas para acelerar tu aprendizaje.
Este libro está dirigido principalmente a personas que nunca han programado antes y a personas que tienen cierta experiencia en otro lenguaje de programación. Si tienes mucha experiencia en Python, puede que los primeros capítulos te resulten demasiado lentos.
Uno de los retos de aprender a programar es que tienes que aprender dos lenguajes: uno es el propio lenguaje de programación; el otro es el vocabulario que utilizamos para hablar de los programas. Si aprendes sólo el lenguaje de programación, es probable que tengas problemas cuando necesites interpretar un mensaje de error, leer documentación, hablar con otra persona o utilizar asistentes virtuales. Si has programado algo, pero no has aprendido también este segundo lenguaje, espero que este libro te resulte útil.
Objetivos del Libro
Al escribir este libro, he intentado ser cuidadoso con el vocabulario. Defino cada término cuando aparece por primera vez, y al final de cada capítulo hay un glosario que repasa los términos introducidos.
También he intentado ser conciso. Cuanto menos esfuerzo mental te suponga leer el libro, más capacidad tendrás para programar.
Pero no puedes aprender a programar sólo leyendo un libro: tienes que practicar. Por eso, este libro incluye ejercicios al final de cada capítulo en los que puedes practicar lo que has aprendido.
Si lees con atención y trabajas en los ejercicios con constancia, progresarás. Pero te advierto ahora: aprender a programar no es fácil, e incluso para los programadores experimentados puede resultar frustrante. A medida que avancemos, te sugeriré estrategias que te ayudarán a escribir programas correctos y a corregir los incorrectos.
¿Qué hay de nuevo en la tercera edición?
Los cambios más importantes de esta edición se deben a dos nuevas tecnologías: los cuadernos Jupyter y los asistentes virtuales.
Cada capítulo de este libro es un cuaderno Jupyter, que es un documento que contiene texto ordinario y código. Para mí, eso facilita escribir el código, probarlo y mantener la coherencia con el texto. Para ti, significa que puedes ejecutar el código, modificarlo y trabajar en los ejercicios, todo en un mismo lugar. Las instrucciones para trabajar con los cuadernos están en el primer capítulo.
El otro gran cambio es que he añadido consejos para trabajar con asistentes virtuales como ChatGPT y utilizarlos para acelerar tu aprendizaje. Cuando se publicó la edición anterior de este libro en 2015, los predecesores de estas herramientas eran mucho menos útiles y la mayoría de la gente las desconocía. Ahora son una herramienta estándar para la ingeniería de software, y creo que serán una herramienta transformadora para aprender a programar... y también para aprender muchas otras cosas.
Los demás cambios del libro están motivados por lo que lamento de la segunda edición. El primero es que no hice hincapié en las pruebas de software. Eso ya era una omisión lamentable en 2015, pero con la llegada de los asistentes virtuales, las pruebas automatizadas han cobrado aún más importancia. Así que esta edición presenta las herramientas de pruebas de Python más utilizadas, doctest
y unittest
, e incluye varios ejercicios en los que puedes practicar trabajando con ellas.
Otra cosa que lamento es que los ejercicios de la segunda edición eran desiguales: algunos eran más interesantes que otros y otros demasiado difíciles. Pasar a los cuadernos Jupyter me ayudó a desarrollar y probar una secuencia de ejercicios más atractiva y eficaz.
En esta revisión, la secuencia de temas es casi la misma, pero he reorganizado algunos capítulos y he comprimido dos capítulos cortos en uno. Además, he ampliado la cobertura de las cadenas para incluir las expresiones regulares.
Algunos capítulos utilizan gráficos de tortuga. En ediciones anteriores, utilicé el módulo turtle
de Python, pero desgraciadamente no funciona en los cuadernos Jupyter, así que lo he sustituido por un nuevo módulo de tortuga que debería ser más fácil de usar.
Por último, reescribí una parte sustancial del texto, aclarando los lugares que lo necesitaban y recortando en los que no era todo lo conciso que podía ser.
Estoy muy orgullosa de esta nueva edición, ¡espero que te guste!
Cómo empezar
Para la mayoría de los lenguajes de programación, incluido Python, hay muchas herramientas que puedes utilizar para escribir y ejecutar programas. Estas herramientas se denominan entornos de desarrollo integrados (IDE). En general, hay dos tipos de IDE:
Algunos trabajan con archivos que contienen código, por lo que proporcionan herramientas para editar y ejecutar estos archivos.
Otros trabajan principalmente con cuadernos, que son documentos que contienen texto y código.
Para los principiantes, recomiendo empezar con un entorno de desarrollo de cuadernos como Jupyter. Los cuadernos de este libro están disponibles en un repositorio en línea en https://allendowney.github.io/ThinkPython. Hay dos formas de utilizarlos:
Puedes descargar los cuadernos y ejecutarlos en tu propio ordenador. En ese caso, tienes que instalar Python y Jupyter, lo cual no es difícil, pero si quieres aprender Python, puede ser frustrante pasar mucho tiempo instalando software.
Una alternativa es ejecutar los cuadernos en Colab, que es un entorno Jupyter que se ejecuta en un navegador web, por lo que no tienes que instalar nada. Colab está gestionado por Google, y su uso es gratuito.
Si estás empezando, te recomiendo encarecidamente que empieces con Colab.
Recursos para profesores
Si enseñas con este libro, aquí tienes algunos recursos que pueden resultarte útiles.
Puedes encontrar cuadernos con las soluciones a los ejercicios, junto con enlaces a los recursos adicionales que se enumeran aquí, en https://allendowney.github.io/ThinkPython.
En la versión de este libro para la Plataforma de Aprendizaje O'Reilly hay disponibles cuestionarios para cada capítulo y un cuestionario resumen para todo el libro.
Enseñar y aprender con Jupyter es un libro en línea con sugerencias para utilizar Jupyter eficazmente en el aula. Puedes leer el libro en https://jupyter4edu.github.io/jupyter-edu-book.
Una de las mejores formas de utilizar los cuadernos es la programación en vivo, en la que un instructor escribe código y los alumnos lo siguen en sus propios cuadernos. Para aprender a programar en directo -y obtener otros excelentes consejos sobre la enseñanza de la programación- recomiendo la formación de instructores que ofrece The Carpentries, en https://carpentries.github.io/instructor-training.
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.
- Negrita
-
Indica la primera introducción de un nuevo término técnico, que también tiene su correspondiente entrada en el glosario.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://allendowney.github.io/ThinkPython.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a support@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo 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 generalmente no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: "Piensa en Python por Allen B. Downey (O'Reilly). Copyright 2024 Allen B. Downey, 978-1-098-15543-8".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, 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 tecnológica y empresarial, conocimientos y perspectivas 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 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 https://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-889-8969 (en Estados Unidos o Canadá)
- 707-827-7019 (internacional o local)
- 707-829-0104 (fax)
- support@oreilly.com
- https://www.oreilly.com/about/contact.html
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/think-python-3e.
Para obtener noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.
Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media
Míranos en YouTube: https://youtube.com/oreillymedia
Agradecimientos
Muchas gracias a Jeff Elkner, que tradujo mi libro de Java a Python, lo que puso en marcha este proyecto y me introdujo en el que ha resultado ser mi lenguaje favorito. Gracias también a Chris Meyers, que contribuyó con varias secciones a Cómo pensar como un informático (Green Tea Press).
Gracias a la Fundación para el Software Libre por desarrollar la Licencia de Documentación Libre GNU, que hizo posible mi colaboración con Jeff y Chris, y gracias a Creative Commons por la licencia que utilizo ahora.
Gracias a los desarrolladores y mantenedores del lenguaje Python y de las bibliotecas que utilicé, incluido el módulo de gráficos de tortuga; a las herramientas que utilicé para desarrollar el libro, incluidos Jupyter y JupyterBook; y a los servicios que utilicé, incluidos ChatGPT, Copilot, Colab y GitHub.
Gracias a los editores de Lulu que trabajaron en Cómo pensar como un informático y a los editores de O'Reilly Media que trabajaron en Piensa en Python.
Un agradecimiento especial a los revisores técnicos de la segunda edición, Melissa Lewis y Luciano Ramalho, y de la tercera, Sam Lau y Luciano Ramalho (¡otra vez!). También estoy agradecido a Luciano por desarrollar el módulo gráfico de tortuga que utilizo en varios capítulos, llamado jupyturtle
.
Gracias a todos los estudiantes que trabajaron con versiones anteriores de este libro y a todos los colaboradores que enviaron correcciones y sugerencias. Más de cien lectores perspicaces y atentos han enviado sugerencias y correcciones a lo largo de los últimos años. Sus aportaciones y su entusiasmo por este proyecto han sido de gran ayuda.
Si tienes alguna sugerencia o corrección, envía un correo electrónico a feedback@thinkpython.com. Si incluyes al menos parte de la frase en la que aparece el error, eso me facilita la búsqueda. Los números de página y de sección también están bien, pero no son tan fáciles de usar. Muchas gracias.
Get Piensa en Python, 3ª 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.