There are PLENTY of books written for programming in Python today. The only problem: almost all are written for those new to programming, new to Python, or both.

That does you no good. In contrast to the sprawling wealth of resources available for learning "hello world" in Python, there's been very little for those of us far past that stage... professionals seeking to elevate our mastery of the language, and our craft.

That's why I wrote Powerful Python: The Most Impactful Patterns, Features, And Development Strategies Modern Python Provides. What's inside:

On top of this, your purchase of the digital edition - either by itself, or via the "digital upgrade" on the print book - gets you lifetime free access to all future digital editions and updates.

Zero Risk "Money-Back" Guarantee

It's important you are not just completely satisfied, but absolutely delighted with the value you receive from reading "Powerful Python". This is why I have invested years writing, re-writing, re-re-writing, getting feedback from working developers, and then - based on their tough but honest feedback - tearing out whole chapters and starting from scratch. Honestly, it feels like I've written three books, not just one.

But none of that matters. The only thing that does is that you are more than happy with the result... that you feel your hard-earned money - and even more valuable time - are well invested.

While I can't give you back your time, I can and will happily refund a full 100% of your purchase price of the digital edition if you are not completely satisfied, delighted, and supremely happy with the value you've gained. Take all the time you need over 30 days to read and study the book, and put it into practice. If it didn't live up to this standard for you, simply contact customer service within this period to get your immediate, no-hassle refund. You can even keep the current digital edition for your trouble. (Different terms apply to the print book - see Amazon's return policy for details.)

Get Your Digital Copy Now

Powerful Python eBook


Instant digital access, DRM-free.
Free upgrade to next edition.
Early access to new chapters.
And a zero-risk guarantee.

Team licenses

Questions and Answers

What version(s) of Python does this book support?

This 2nd edition focuses on Python 3.5 and later, while also supporting Python 2.7 too - explaining what's different in footnotes and extra sections. So you're covered if you must maintain legacy Python applications, but can easily skip those parts if you've moved on.

How long is the book?
The print book has a bit over 200 pages of main matter (excluding table of contents, index, etc.) The digital version's page count is slightly different, since the page size (and hence, number of words per page) is different.
What's the digital book's format, exactly?

A regular PDF file, in printable US letter format. To make it easiest on you, the reader, it has no DRM or password protection. Files are watermarked with your email address.

Full Book Contents

1 Doing More with Python
1.1 Python Versions
1.2 Python Application Environments
1.3 Python Package Management

2 Scaling With Generators
2.1 Iteration in Python
2.2 Generator Functions
2.3 Generator Patterns and Scalable Composability
2.4 Python is Filled With Iterators
2.5 The Iterator Protocol

3 Creating Collections with Comprehensions
3.1 List Comprehensions
3.2 Formatting For Readability (And More)
3.3 Multiple Sources and Filters
3.4 Comprehensions and Generators
3.5 Dictionaries, Sets, and Tuples
3.6 Limits of Comprehensions

4 Advanced Functions
4.1 Accepting & Passing Variable Arguments
4.2 Functions As Objects
4.3 Key Functions in Python

5 Decorators
5.1 The Basic Decorator
5.2 Data In Decorators
5.3 Decorators That Take Arguments
5.4 Class-based Decorators
5.5 Decorators For Classes
5.6 Preserving the Wrapped Function

6 Exceptions and Errors
6.1 The Basic Idea
6.2 Exceptions Are Objects
6.3 Raising Exceptions
6.4 Catching And Re-raising
6.5 The Most Diabolical Python Anti-Pattern

7 Classes and Objects: Beyond The Basics
7.1 Quick Note on Python 2
7.2 Properties
7.3 The Factory Patterns
7.4 The Observer Pattern
7.5 Magic Methods
7.6 Rebelliously Misusing Magic Methods

8 Automated Testing and TDD
8.1 What is Test-Driven Development?
8.2 Unit Tests And Simple Assertions
8.3 Fixtures And Common Test Setup
8.4 Asserting Exceptions
8.5 Using Subtests
8.6 Final thoughts

9 String Formatting
9.1 Replacing Fields
9.2 Number Formats (and "Format Specs")
9.3 Width, Alignment, and Fill
9.4 F-Strings
9.5 Percent Formatting

10 Logging in Python
10.1 The Basic Interface
10.2 Configuring The Basic Interface
10.3 Passing Arguments
10.4 Beyond Basic: Loggers
10.5 Log Destinations: Handlers and Streams
10.6 Logging to Multiple Destinations
10.7 Record Layout with Formatters

11 What's Next?