Author: Mark Lutz
Audience: Experienced Python programmers
Reviewer: Alex Armstrong
A pocket reference that could fit in your pocket is a rare thing. Do you need it?
This is short book with a small page size so don't expect a slow paced gentle introduction to any of the topics it covers. This one is targeting programmers who either know a little Python or have forgotten what they once knew. It could also be handy if you want to brush up on some area you have forgotten or never encountered. It certainly isn't a primer on Python for the beginner.
The good news is that this fifth edition is up-to-date and covers both Python 3.4 and 2.7.
Mark Lutz starts off with the sort of basics you would expect - how to get the Python interpreter running, command line switches and then dives straight into the language with built in types and operators. Then he covers the standard data structures - Strings, Lists, Dictionaries, Tuples, Files and Sets.
Having finished with data the next part of the book goes through each Python statement in turn from Assignment to the with statement. Given that there is so much material to get through many of the explanations are very short and usually this is not a problem but occasionally things get a bit cryptic:
This immediately exits the closest (innermost) enclosing while or for loop statement, skipping its associated else (if any). Hint: raise and try statement can be used to exit multiple loop levels.
If you understand "raise and try" the hint is useful, otherwise it is just a further puzzle. There are other examples of small helpful comments just not being explained enough. and the only real problem is that if you don't understand you are going to have to go to another source to find out.
The next big topic is object oriented programming with Python and this is again very condensed. Occasionally the explanations of how method references are resolved get so compact you have to re-read them a few times. There is an argument that for such technical ideas compact is better. Of course there is also the small problem of the differences between Python 2 and 3.
After dealing with objects, the book turns to the wider Python environment and away from the core language. There is an argument that more space would be better devoted to the core language at the expense of covering fewer modules. We start with the sys module and work though string, os, regular expression, object persistence, tkinter, internet modules, math, time, timeit, date, random, json, subprocess, enum, struct and threading. The problem is which ones would you drop?
The book closes with a section on SQL, connection objects, cursor objects and so on. Finally we have a section on Hints and Idioms - again many of these are very compressed and there aren't many justifications for the idioms.
You can't buy this book and complain that some of the information is presented in too brief a form. This is a pocket reference and this is what you are getting. As far as it goes it is going to be useful for anyone needing such a condensed reminder of what Python is all about.