Dive Into Python 3 will cover Python 3 and its differences from Python 2. Compared to the original Dive Into Python, it will be about 50% revised and 50% new material. I will publish drafts online as I go. The final book will be published on paper by Apress. The book will remain online under the CC-BY-3.0 license.
Below is the draft table of contents. It is not finalized. Only a few chapters have been written so far. The rest is just stubs and random notes to myself.
Yes, that is PapayaWhip. All hail PapayaWhip.
Installing Python
Python on Windows
Python on Mac OS X
Python on Linux
Python from source
The interactive shell
Summary
Your first Python program
Diving in
Declaring functions
How Python's datatypes compare to other programming languages
Writing readable code
Why bother?
Docstrings
Function annotations
Style conventions
...
Everything is an object
The import search path
What's an object?
Indenting code
Testing modules
Summary
Native Python datatypes
Lists
Differences from Python 2
Creating new a list
Modifying a list
Searching a list
Deleting elements from a list
List operators
Looping through a list (list comprehensions)
Tuples
Dictionaries
Differences from Python 2
Creating a new dictionary
Modifying a dictionary
Deleting items from a dictionary
Looping through a dictionary (dictionary comprehensions)
Dictionary views
Sets
Differences from Python 2
Creating a new set
Modifying a set
Deleting elements from a set
Common set operations: union, intersection, and difference
Frozen sets
Numbers
Differences from Python 2
Integers
Long integers
Floating point numbers
Complex numbers
Common numerical operations
Iterators
Generators
Views
...
Strings
There ain't no such thing as "plain text"
A brief history of character encoding
What's a character?
How strings are stored in memory
Converting between different character encodings
Differences from Python 2
Formatting strings
What's my string?
Lists and strings
Historical note on the string module
Byte streams
Summary
The power of introspection
Diving in
Using optional and named arguments
Keyword-only arguments
Using type, str, dir, and other built-in functions
The type function
The str function
Built-in functions
Getting object references with getattr
getattr with modules
getattr as a dispatcher
Filtering lists
The peculiar nature of and and or
Using the and-or trick
Using lambda functions
Real-world lambda functions
Putting it all together
Summary
Objects and object-orientation
...major changes afoot...
...stuff about decorators...
...stuff about importing modules...
...mention why "from module import *" is only allowed at module level