Author: Mark Summerfield
Publisher: Addison Wesley; 2nd edition, 2009
Aimed at: Exisiting programmers
Pros: Good introduction to object-oriented principles and to practical Python
Cons: Not for the beginner to programming
Reviewed by: Mike James
This book is seriously dull but this isn't necessarily a bad thing.
The first chapter starts the book of with what might seem like a good idea - a rapid introduction to Python. This takes the form of eight short presentations of something that makes Python a language worth learning. For the beginner however this is likely to be the least effective chapter in the book - a lot of it will simply pass by without sinking in. For example, Piece #2 is about object references and, while reasonably well explained, isn't really going to go down well with a complete beginner. If you are familiar with another programming language, however, it is well worth reading as it does point out why you might want to read the book and learn Python.
The early chapters constitute a lightning introduction to procedural Python, i.e. Python without classes or objects.
Chapter 2 introduces data types and is a straightforward explanation of variables and data without any attempt to introduce anything but serious study. It is also fairly complete with no attempt to separate out the easy basic stuff from the more advanced material. Chapter 3 continues on Collections and again the treatment is comprehensive.
After spending so much time on data, Chapter 4 introduces the Python control structures and functions. This is a direct explanation of how Python does things that you are supposed to mostly already know about from other languages. By Chapter 5 the reader is more or less fluent, or expected to be fluent, in procedural Python and we move on to consider modules and packages.
Chapter 6 starts the learning process over again with an introduction to objects. Compared to the introduction to procedural Python this is relatively slow and gentle. It is a suitable introduction to object-oriented ideas even if you haven never encountered them before and by the end of the chapter you will have "done" objects and encountered just about everything you need to know including inheritance an polymorphism.
From Chapter 7 on the book is mostly about practical aspects of using Python. You can think of it as a primer on applied Python. Chapter 7 is about file handling, 8 is a general catchall on "advanced programming", 9 is on debugging and testing, 10 is on threading, 11 Networking, 12 database, 13 regular expressions, 14 on parsing and 15 on working with GUIs (Tcl/Tk).
If you are thinking about learning Python you need to take note that this is about version 3 and this is not backward compatible with earlier versions of the language. You also need to take seriously the comments about this not being a book for the beginner. It is a well written straightforward account of Python and how it is used. It will suit a reader who already knows something about how to program in another language and is prepared to work at chapters that tell you everything there is to know about a topic before moving on to the next topic. This approach makes it difficult to work out what is essential knowledge and what you can leave until you actually need it.
Overall recommended for any reader with a reasonably good background in programming wanting to learn Python fairly quickly and in good depth.