About Programming Python, 4th Edition

[Larger book cover]

[January 2011] The new, 4th Edition of this book—an applications tutorial and Python classic—is now available. It was first released in ebook form from O'Reilly on December 15th, 2010, and became more widely available in paper and other forms from retailers on January 5th, 2011.

This edition has been updated substantially for Python best practice and new tools. It uses Python 3.X—version 3.2 specifically, though most of its code should apply to readers using other 2.X and 3.X releases (as of 2019, its major examples have been verified to also run on Pythons 3.3 through 3.7). Despite its new coverage, this edition still serves as a gradual tutorial that teaches how to use Python in common application domains, and a follow-up to Learning Python.

There's more on this book's content and scope below, but for a brief description see the book's early draft Preface preview, as well as the discussion of Python 3.X's implications for this book on the Learning Python notes page. Among other things, the pervasiveness of Unicode in 3.X has broad impacts on both this edition and Python programmers in general.

Programming Python, 4th Edition is available in print, ebook, and online forms from book sellers worldwide, including Amazon and O'Reilly. For purchase options and links, please see the Purchase pointers page. Of note: figures and images in the PDF and other ebooks are all in color this time around—a nice feature for a book with 302 screenshots. FAQ: there are no current plans for a 5th Edition of this book, as noted here and here.

Update 2024: while this book is still useful as an introduction to common app domains, both Python and the tech world have moved on much since 2011. As a result, some of this book's examples may not work as shown without help today. For example, FTP examples require finding or running a nonsecure FTP server, and CGI examples may require a "pip3 install legacy-cgi" command to restore the longstanding CGI modules to be cut by Python 3.13. Most other examples, including tkinter GUIs, network sockets, and processes and threads, should largely work as is. For an up-to-date look at the Python language itself, see Learning Python, 6th Edition.

Resources

More Resources

Previews

Contents

In short, this edition's main parts reflect major application domains:

The Beginning A quick first pass over topics to be covered, by example
System Programming Systems programming and administration, parallel processing
GUI Programming In-depth user interface coverage with Python's tkinter toolkit
Internet Programming Networking, client-side and server-side scripting, websites
Tools and Techniques Databases, data structures, text and language, C integration
The End A wrap-up on Python's roles in development at large

For more details, check out the Preface excerpt, and the complete table of contents in the O'Reilly sampler.

Example Programs

Besides its tutorials, much of this book's meat lies in its example code. Each part includes substantial working examples, including full chapters devoted to larger programs in the Systems, GUIs, and Internet parts. Although smaller and self-contained examples show up too, this book's scope and size allow it to also present more complete projects and programs — the largest of which span multiple chapters and parts, and top out at thousands of lines of code. Among these examples: photo viewers, calculators, email clients, webmail sites, and Unicode-aware text editors serve both to teach full-scale applications work, and to demonstrate Python's utility as a general systems development tool. Fetch the book's examples here, and view some of their screenshots here.

Related Books

This book retains the applications-programming focus of its prior editions: it's about what you can do with Python after you've learned the core language. It focuses on the libraries, tools, and techniques used in realistic applications development work.

Along the way, this book provides gradual tutorials and develops non-trivial Python programs in a variety of common domains: the Web and Internet, GUIs, systems administration, databases, text processing, networking, parallel programming, Python/C integration, and more. Although new and emerging technologies are also discussed, this book's main goal remains teaching fundamentals of Python applications which underlie and span systems, rather than the transient bleeding-edge.

As such, this edition is designed to work best as the second in a two volume set: it's intended to be a natural follow-up to the language fundamentals book Learning Python, and augmented by the reference book Python Pocket Reference. These other books are not strictly required reading, but their topics and material are assumed prerequisites. Programing Python builds upon Learning Python's knowledge base, to tell the rest of the Python story.



[Home page] Books Code Blog Python Author Train Find ©M.Lutz