The Python programming language is known for being easy to learn and expressive; that is, fewer lines of code are required than for an equivalent application written in another language such as C++ or Java. Others describe Python as elegant, uncomplicated, and powerful [1].
This book follows a classical Kernighan-Ritchie-style approach [2]. It starts with a “Hello world!” program, and explains the built-in data and control structures first. In chapter 3, however, the book takes a more modern approach by teaching programming patterns using some of Python’s more powerful data types: sequences and lists. Easy iterations and accumulations over these data types are major strengths of Python. Chapter 4 teaches object-oriented programming in the traditional (but still modern) approach of Abelson et al. [3] by referring to constructors, accessors, and mutators. Chapter 5 presents functions after objects, consistent with objects being more important than functions in modern programming. Event-driven window programming is another important modern feature. Chapter 6 includes approximately 18 pages that provide a rough idea of what event-driven programming means. The last chapter covers more advanced object-oriented programming techniques such as inheritance and polymorphism.
Several appendices list all operators as well as the source code of larger example programs. Each chapter concludes with review questions, exercises, and solutions for practice problems--all making this book applicable for self-study.
Overall, this is a fine book. It’s not the 800-page definitive Python reference, but a well-written, well-structured, self-contained modern introduction to programming with an important platform-independent language.