Revisión del libro “Python 3, Curso Práctico” de Alberto Cuevas

Nos han pedido una revisión de un nuevo libro sobre Python en español. El libro se titula 'Python 3, Curso Práctico' y lo ha escrito Alberto Cuevas Álvarez. Si seguís leyendo podréis ver cómo ganar una copia en papel del mismo ;-D

Primero de todo, algunas características del libro:

  • Título: Python 3, Curso Práctico.
  • Autor: Alberto Cuevas Álvarez
  • Año de edición: 2016
  • Nº páginas: 560
  • ISBN: 978-84-9964-658-9
  • Editorial: RA-MA EDITORIAL
  • Encuadernación: Rústica
  • Idioma: Español (de España).
  • Versión de Python usada en el libro: 3.3
  • Link: http://www.ra-ma.es/libros/PYTHON-3-CURSO-PRACTICO/94627/978-84-9964-658-9
  • Precio: 31.90 € para la versión en papel.
  • Versión electrónica: No disponible de momento.

Le hemos pedido al autor que nos defina su intención al escribir el libro y esta es la frase resumen que nos ha enviado:

"Mi intención a la hora de realizar el libro ha sido explicar los fundamentos básicos de Python y las herramientas necesarias dentro de su ecosistema para conseguir crear aplicaciones gráficas completas en 2D ."

Como venimos haciendo, vamos a ir viendo el libro capítulo a capítulo para poder comentar de forma pormenorizada las pequeñas piezas que componen el mismo:

INTRODUCCIÓN

El libro empieza fuerte explicando, aunque sea muy por encima, cosas básicas de programación que pueden venir bien para fijar ciertos conceptos si no se dispone de cierto bagaje en ciencias de la computación.

EMPEZANDO A PROGRAMAR

En este punto se introducen conceptos importantes como lo que son las variables, cómo se asignan, ciertas funciones integradas (builtin) en el intérprete, operadores,etc. Cosas básicas introducidas en el momento oportuno. Está bien lo detallado de algún punto con múltiples ejemplos útiles. Se comenta la instalación de PyScripter, un IDE solo windows 🙁

ELEMENTOS FUNDAMENTALES DE PROGRAMACIÓN: INSTRUCCIÓN CONDICIONAL Y BUCLES

El capítulo habla de forma extensa del control de flujo, bucles y condiciones. Muy detallada la explicación de las condiciones. En este mismo capítulo se introducen algunas cosas que no tienen mucha relación como el mecanismo del import (explicado muy brevemente), el uso de números aleatorios (que no tiene mucha relación con el resto de contenidos del capítulo), depuración con PyScripter (menos útil para personas fuera de Windows),...

PROGRAMACIÓN FUNCIONAL

El título del capítulo es algo desafortunado ya que no estamos hablando sobre programación funcional sino sobre el uso de funciones en Python y esto podría confundir a alguien. El capítulo es muy completo para aprender a usar funciones en Python, el 'scope' de las variables, los parámetros y argumentos,... Nuevamente, algún ejemplo podría resultar confuso pero, en general, está bastante completo. Echo en falta que se nombre a las funciones lambda.

PROGRAMACIÓN ORIENTADA A OBJETOS

Llegamos a la parte de clases y la programación orientada a objetos (POO). El capítulo es bastante extenso y se explican muchas cosas, algunas de ellas avanzadas. Sin duda, este es el capítulo del libro que me gusta menos. Los ejemplos que se usan no son muy ortodoxos, nuevamente se recurre a casos muy particulares que provocan, siempre en mi modesta opinión, que algunas cosas resulten en más complejas de lo que deberían en este punto. Una buena parte del capítulo se habla sobre como se hacen algunas cosas con PyScripter lo que le resta valor a usuarios fuera de Windows.

TIPOS DE DATOS EN PYTHON

Este capítulo es muy detallado. Se explica con mucha profundidad los tipos básicos en Python, cadenas, listas, tuplas, conjuntos y diccionarios. Podría, incluso, servir como guía de referencia en español del uso de estos tipos  por lo detallado (son unas 90 páginas). Además, se usan muchísimos ejemplos para explicar los conceptos.

FICHEROS Y EXCEPCIONES

Se habla sobre cómo poder usar ficheros para leer y escribir información. Esta parte es muy detallada y extensa con múltiples ejemplos útiles. La parte de excepciones es más que correcta con un alcance adecuado para introducirlos. Por último, se muestra el uso de with pero se despacha en menos de una página por lo que me parece insuficiente. Este capítulo y el anterior son los que más me gustan del libro.

PROGRAMACIÓN GRÁFICA EN PYTHON MEDIANTE PYQT

No es normal encontrar una introducción a interfaces gráficas en un libro introductorio. Como mucho, se muestra un ejemplo básico para dejar al lector que se introduzca por su cuenta en el tópico si tiene interés. En este caso se hace una introducción mucho más extensa que el ejemplo típico por lo que si tienes interés en crear interfaces gráficas estás de suerte. Sin embargo, si no tienes mucho interés en ello, se van muchas páginas en ello. Se explican de forma detallada muchos de los widgets disponibles en PyQt y está muy enfocado a crear las interfaces usando Qt Designer.

GENERACIÓN DE GRÁFICOS EN PYTHON MEDIANTE MATPLOTLIB

Nuevamente, se introduce otra librería que quizá no sea de interés para todo el mundo. En alrededor de 50 páginas se habla sobre cómo instalar la librería, cómo usar pyplot con muchos ejemplos, como usar matplotlib usando POO y cómo integrar matplotlib en una aplicación PyQt. Reitero, si tienes interés en hacer gráficas tienes suerte pero si no es así se te van otras 50 páginas de libro en ello.

Apuntes varios sobre el libro:

Me gusta:

  • Lo detallado de la explicación del if en el capítulo 3.
  • Que no haya referencias a Python 2.
  • Lo detallado de la explicación de las funciones.
  • Lo detallado de la explicación de los tipos básicos de Python pudiendo servir, incluso, como guía de referencia en español.
  • La parte del tratamiendo de ficheros y excepciones se hace con un alto nivel de detalle.
  • La extensión del libro, que permite poder desarrollar algunos temas de forma muy completa.
  • Que sea en español.

No me gusta:

  • El uso de eval en muchos ejemplos del libro lo considero una mala práctica.
  • No se respeta el PEP8, enseñando malas prácticas, lo cual no me parece adecuado en un curso introductorio.
  • Algunos ejemplos usan casos extremos para explicar ciertos conceptos. Estos casos extremos pueden ser detalles de la implementación y no los considero adecuados ya que en lugar de ayudar pueden resultar más confusos.
  • Está muy enfocado a Windows (uso de PyScripter, instalaciones) haciendo que una buena parte de las páginas sea menos útil para gente que use otros sistemas operativos.

Conclusión

El libro tiene algunos altibajos con partes que brillan con luz propia y partes que mejoraría.

Si de mi dependiera me gustaría que algunas cosas se explicasen un poco mejor, como el uso de with, las funciones lambda, el mecanismo del import, la parte de POO. Metería partes con muchas librerías útiles de la librería estándar (math, itertools, datetime, os, sys, collections,...), como crear paquetes y módulos,... Reduciría o eliminaría los dos últimos capítulos.

Como comentario general, considero que el libro está bien pero, como todo en esta vida, se podría mejorar en algunos aspectos.

Sorteamos una copia entre nuestros lectores

El autor nos envió varias copias del libro. Una de ellas la vamos a sortear entre todos los lectores de Pybonacci residentes en España. Para participar:

  • Solo tienes que escribir un tweet indicando porqué te gustaría tener este libro incluyendo un enlace a http://www.ra-ma.es/libros/PYTHON-3-CURSO-PRACTICO/94627/978-84-9964-658-9
  • Una vez enviado el tweet nos lo enlazas en los comentarios de más abajo para que no se nos escape el tweet.
  • Si no tienes cuenta en twitter, déjanos un comentario más abajo indicando porqué te gustaría tener este libro.

Tenéis hasta el miércoles, 2 de noviembre a las 21:00:00 (CET) para participar en el sorteo. Después de pasada la fecha indicaremos cómo se hará el sorteo (actualizando algunas cosas de aquí), usando el número ganador del sorteo de la ONCE de ese día (2016/11/02) y anunciaremos el ganador.

Actualización: Resultado del sorteo

El número de la ONCE fue el 69907. Si introducís el código aquí:

sale que el ganador ha sido @FlixUjo. He usado los participantes por orden de fecha en su comentario, del más antiguo al más nuevo:

participantes = ['FlixUjo', 'Javier @runjaj', 'Antonio Molina',
'Raúl', 'José Carlos Juanos', 'Christian',
'Kike', 'Eduardo Campillos']

Enhorabuena al vencedor, por favor, mándanos un DM por twitter o usa el formulario de contacto para mandarnos una dirección de correo/teléfono o lo que prefieras.

Saludos a todos.

Kiko Correoso

Licenciado y PhD en Ciencias Físicas, especializado en temas de física, meteorología, climatología, energías renovables, estadística, aprendizaje automático, análisis y visualización de datos. Apasionado de Python y su comunidad. Fundador de pybonacci y editor del sitio en el que se divulga Python, Ciencia y el conocimiento libre en español.

More Posts

Follow Me:
TwitterLinkedIn

12 thoughts on “Revisión del libro “Python 3, Curso Práctico” de Alberto Cuevas

  1. Hola, soy ingeniero en informática y profesor de matemáticas. He hecho algunas cosillas en Python, pero nada realmente en serio. Llevo algún tiempo queriendo dedicar tiempo a profundizar más en la plataforma, así que pienso que el libro me puede venir genial para ello. A ver si hay suerte! 🙂

  2. Ademas de los fundamentos de Python 3, lo interesante de este libro es la introducción de GUI con PyQt, por el momento es el único libro en español que trata de ello. Estoy convencido de que un libro dedicado a PyQt tendría una buena acogida, hasta la fecha no he encontrado ningún libro de PyQt en español.
    Saludos.

  3. Hola, Python es uno de los lenguajes con más presente y futuro y este libro puede ser una buena alternativa para introducirse en el mismo, con el añadido que explica con detenimiento PyQt para interfaces gráficas.
    Saludos,
    Carlos

  4. Hola! Me gustaria que hicierais una revision del libro “Python. Paso a paso” del autor ANGEL PABLO HINOJOSA GUTIERREZ y la editorial RA MA. Comparto la opinion de que hay muy pocos libros de Python en lengua española. Y los que hay, se parecen mucho entre si. Es decir, que tocan los temas introductorios del lenguaje y algunos capitulos que se hacen demasiado avanzados. Creo que se deberian hacer libros mas tematicos sobre este fantastico lenguaje. Como libros dedicados enteramente a la POO, programacion de juegos, interfaces graficas, modulos standard, inteligencia artificial, etc…Cosa que ya existe con otros lenguajes y en lengua española.

  5. Agradezco públicamente el trabajo de Kiko con la revisión. Es un trabajo arduo y nada agradecido. Tomo nota de todo lo que ha comentado para, si hay posteriores ediciones del libro, mejorarlo y completarlo. Muchas gracias por ello y por el trato recibido.

  6. Hola Jose Carlos. Usé Python 3.3.5 ya que es la última versión binaria de Python 3.3, para el que está diseñada la librería PyQt4-4-10-4 usada en el libro. Básicamente por motivos de compatibilidad total y al considerar que para explicar los fundamentos del lenguaje y las características tratadas en el libro no suponía ninguna penalización no usar la versión mas actual de Python. También la versión de matplotlib usada (1.4.3) está pensada para eso: máxima compatibilidad.
    Saludos.

Leave a Reply to Anonymous Cancel reply

Your email address will not be published. Required fields are marked *