Edit: I don't recommend learning Python from a book. I recommend http://docs.python.org/tutorial/ if you know a programming language already, or http://learnpythonthehardway.org/ if you don't. (Yes, I know there are dead-trees of both of these.)
Edit: I don't recommend learning Python from a book. I recommend http://docs.python.org/tutorial/ if you know a programming language already, or http://learnpythonthehardway.org/ if you don't. (Yes, I know there are dead-trees of both of these.)
I have both DiP and PtHW on my Kindle, and I can't straddle both to the end.
It does have a couple of weaknesses. Starting with ODBC is kind of lame, and should be updated to Sqlite. And SOAP needs to be taken out the back and shot, but that's just my opinion.
I'm sure Learn Python The Hard Way is pretty good, but DITP was the second place most Pythoneers were sent to (after the tutorial you pointed out, of course).
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.
"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."
http://learnpythonthehardway.org/book/ex0.html (under Warnings for Beginners)
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.
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.
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?!)
(+) I hope I didn't mangle the idiom too badly.