This is certainly a book about programming with Python, but it isn’t really about Python the language. Instead it is more like a series a mini-projects than happen to be amenable to a computerised solution with Python. It serves as a decent book to work through right after finishing your Python fundamentals and in the process introduces you to some of the Python libraries such as Pygame and Tkinter.
There really is no Python without it’s libraries after all, it’s such a slow language.
Tell me about the projects
There are 16 sections, each consisting of multiple “mini-projects” that shouldn’t take more than 1-2 hours to work through and finish. Each section implicitly showcases the things Python is well suited for such as working with strings. As it happens 8 of the 16 sections are entirely about language processing, such as by writing haikus algorithmically. In one section you will generate random names, in another perform simple encryption and decryption algorithms of historical interest, such as the Trevanion Cipher.
The other sections are geared towards mathematical modelling. If you ever wanted to know what the Monte Carlo method was, then this contains an okay introduction. The final, and my personal favourite section, introduces data processing by stacking images of planet Jupiter to create a more detailed and less noisy image than what could otherwise be attained. When I was studying astrophysics a long time ago I did not work with visible light data, so this was quite interesting.
Recommended?
Do I recommend this book? Yes and no. If you’ve completed a degree in a “STEM” subject than this book is quite accessible, however if you’ve had no exposure to undergraduate mathematics parts of it will be pretty mysterious which I think will only detract from what you can learn here. You don’t want to be mindlessly copying code modelling Keplers laws without understanding it.
If you have a strong primary interest in web-development then I would not recommend this book, at least not as anything other than a list of “interesting mini-projects with Python”.
But if you’re coming from a generalist perspective, perhaps because you have to use programming to solve problems related to a non-coding profession, then this is a really excellent introduction to what you can do with Python.
So if you’ve been learning Python for a week or two and know the difference between a for-loop and a while-loop then you may as well jump into “Impractical Python Projects”.