Core Python Programming
Author: Wesley J. Chun
Publisher: Prentice Hall PTR
Price: $44.99 US
Reviewer: Michael Baxter
Finally, a book good enough to be both a textbook and a reference on the Python language now exists. Part of Prentice Hall's PTR Core Series, this book works well as a first Python textbook for computer science students, while also being thumbable for work-a-day use by Python programmers.
The book divides Python into two main parts. In Part I, about 500 pages explain the rudiments of Python: how to program in Python, the syntax, data types and key language features, all cleanly divided into 14 chapters. Each chapter is compartmentalized yet is also incrementally linked to the others. Part II covers six different advanced topics in as many chapters in a little under 200 pages. In Part II, the advanced chapters accomplish what most Python books fail to do: show you integrated working examples of how the language is used to solve real-world problems.
For students, Part II allows you to apply directly what you learn from Part I, moving beyond just pushing what might initially be abstract symbols and syntax. For developers or programmers, Part II is a very nice HOWTO, which is strongly backed up by Part I as a language reference. For all users, the book invites exploration and satisfies your curiosity through modifying the copious examples. Some in-depth examination will illustrate these points.
To introduce the basics, Part I has chapter topics titled “Welcome to Python!”, “Getting Started”, “Syntax and Style”, “Python Objects”, “Numbers”, “Sequences: Stings, Lists, and Tuples”, “Dictionaries”, “Conditionals and Loops”, “Files and Input/Output”, “Errors and Exceptions”, “Functions”, “Modules”, “Classes and OOP” and “Execution Environment”.
The order of topics in Part I really simplifies learning Python, especially if this is your first computer language. If you've ever had a programming class before and used a text that has exercises where you were forced to write code that did some silly language-specific action, you'll be pleased to know that this is not that kind of book. Plentiful, practical examples are used as each topic develops; the exercises are a lot more about exercising your creativity rather than some didactic language feature. Consider this one of the “fun” computer language books.
Because of the excellent depth presented in the introductory topics, the material is also of value to practicing Python programmers. For instance, most language books have tables and lists about features that are broadly discussed in the text. This book goes much further. The standard types in Python are explained compellingly in terms of storage model, update model and access model. These three simple concepts explain all of the possible interactions of data types in the language, doing more to help understanding than dozens of pages of prose. And, there are other examples of this kind of thought-provoking mastery of Python. A flowchart explains how Python does numerical coercion and is much easier to follow than any table or list. The best explanation ever achieved of how Python does slicing of sequence objects is shown using cartoons of soccer players. A lot of the power of Python comes from lists and dictionaries. Interestingly, explanations are given for what these objects do not do, as well as for their capabilities. These pages should be earmarked for reference use.
In Part II, we encounter the advanced topics. Again, this is where the book excels: it actually shows you how to do the programming for specific application areas involving “Regular Expressions”, “Network Programming”, “Multithreading Programming”, “GUI Programming with Tkinter”, “Web Programming” and lastly, “Extending Python” with alternative, compiled languages. In contrast to the interlinked development of Part I, the chapters in Part II are more individually self-supporting. They can be used as one has an interest or need for the information. The chapter on multithreading, in particular, is one of the only complete HOWTO developments on this topic.
Mention must be made of the valuable appendices and the index. Appendix A provides answers to selected exercises, for self-checking or class use. Appendix B contains one of the most comprehensive bibliographies of print and on-line references on Python. The operators in Python are conveniently collected in one place in Appendix C. The book keeps you completely up-to-date with Appendix D, which previews the new language features of Python 2.0. The index is impressively comprehensive at 17 pages in length.
The two-part division of the material feels very appropriate. For use as a textbook, the pacing and thoroughness are more than adequate. As a reference book, the clean division of the subject, plus a good index, allow rapid finding of any topic. A wide variety of examples are used in each chapter. This markedly increases the likelihood that something of salience matches your needs as a programmer. And while opinions vary, I tend to prefer books that offer a CD-ROM of multiplatform binaries and sources, as this one does.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Profiles and RC Files
- Astronomy for KDE
- Maru OS Brings Debian to Your Phone
- Understanding Ceph and Its Place in the Market
- Snappy Moves to New Platforms
- Git 2.9 Released
- What's Our Next Fight?
- OpenSwitch Finds a New Home
- The Giant Zero, Part 0.x
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide