What's interesting is that according to the author Mark Pilgrim:
Python 3 is a commercial disaster. In 2010Q3 I had
negative sales of DiP3. More people returned it than
bought it. I'm considering retro-fitting the book's
content to Python 2.7 and re-releasing it as "Dive Into
Python 2." Seriously.
I don't think it's all that interesting, and it says nothing about Python 3 itself. The choice to write a book on it didn't match up with the demand for a book, and people extrapolated the "disaster" comment too far.
DiP3 is not a very good book. (Neither was DiP.) I don't know how relevant that is to sales, though, but considering that some of the bigger Python groups actively recommend against it, I wouldn't be surprised if there was an impact on sales from that alone.
I like the style and examples and it didn't make me want to commit suicide like certain repetitive, overhyped, chimpanzee-level Python books have, but it needed 3 or 4 more chapters. The coverage felt incomplete and a little arbitrary.
#python has been unrecommending DiP since before Zed wrote LPTHW. The #python dead-tree recommendation, for a long time, was How to Think Like a Computer Scientist: http://greenteapress.com/thinkpython/
Lutz' Learning Python dead-tree is also pretty great, from what I hear, although I haven't had a chance to sit down with a copy yet.
At least I found DIP to be a more than decent book (my background before was mostly C and matlab). Certainly not a great book, but I have yet to find one of those for python. The python tutorial is ok if you don't know much about programming, but I found DiP most fast paced.
If you aren't new to programming at all, then I'd suggest Python Essential Reference.
Otherwise, I'm still recommending against learning Python the hard way. That might depend on a person, but I don't think typing some samples can make an interesting task, and AFAIKT doing things that are not interesting for you makes learning process a lot less efficient.
Judging from my experience, the best way to start learning the language is having some actual work done (e.g., building a site with Django). Correspondingly, books you'd need are references—Python's docs, Python Essential Reference. You can use LPTHW as a reference, too, just do something more useful than its samples.
LPtHW is a great book for learning how to program. If you're already a competent programmer looking to pick up python, then you'll probably find it very slow going, and probably better served by something better. I personally learned python from The Quick Python Book, which I thought was quite good.
"A programmer may try to get you to install Python 3 and learn that. You should tell them, "When all of the python code on your computer is Python 3, then I'll try to learn it." That should keep them busy for about 10 years."
Someone wanting to learn Python (or any other language) will be better served if they are helped to focus at most important and least painful things first: in this case, python 2 is everywhere with huge number of libraries. Whatever you need is 'pip install' away.
Learning Python 2 is not a waste of time: whatever you learn and is changed in Python 3, will be easily relearned once it becomes needed.
I am looking into Python now, because of the job. DiP looks good to me.
OTOH, the book might arguably now work in my case, since I am considering updating my rusty web mojo (+) and sending out the CV instead... :-)
I like the elegant, minimal notation. Tastefully designed. But... the inflexibility gets to me. (It must be unique in a modern language that have lambdas/list comprehensions/etc with just single [edit:] statements?!)