I started with Mark Lutz's Learning Python (http://shop.oreilly.com/product/9780596513986.do) about 10 years ago.
In the meanwhile I've been an active contributor to large Python-based open source projects, e.g., Salt (https://github.com/saltstack/salt) which not only that it helped me get feedback from people with a tremendous experience, but also reading through the code taught me good practices and many good ways to solve various problems.
A few months ago I started reading Luciano Ramalho's Fluent Python (http://shop.oreilly.com/product/0636920032519.do) which is just beautifully written and with a wide variety of topics for a deeper look inside Python internals.
Depending on how you learn best, the following are 3 effective ways to learn:
From a book - one of the best books is Learning Python (http://shop.oreilly.com/product/0636920028154.do)
From videos - you could search YouTube for a trainer who communicates in a way that resonates for you.
By playing (and writing) games - PyGame is an excellent resource (https://www.pygame.org/docs/tut/PygameIntro.html)
Well written Python programs are like structured English, so they are not that hard to read. Personally I would suggest PyGame as the most effectively way to learn, but it really is a personal taste and preferences thing.
Programming Python http://shop.oreilly.com/product/9780596158118.do
Not sure where I fall with these books in terms of skill and knowledge. Looking through the table of contents for Learning Python I recognize everything and know what they are, but don't have a great masterful grasp of most of the stuff but I am afraid too much of it will be stuff I already know. On the flip side, Programming Python might be too advanced for me.
Seems Programming Python is mainly geared towards Python 3.x but I'm still using 2.6.
Edit: Actually, while reading one of the sample chapters it becomes apparent that this book is more of a general introduction to programming than a book about learning Python. I also noticed that there are a few notes sprinkled here and there about changes in python 3.0. So I withdraw my previous criticism.
Also: kudos for getting the SouthPark reference about the rectal probe in there :)
I think the best way is to convert the PDF to the Mobi format with the free mobipocket creator:
The conversion works pretty well and if you have patience you can even generate things like table of contents and proper metadata.
Edit: you may also know that oreilly sells an ebook "package" with books in the following formats: Android, Mobi, PDF, ePub. For example:
(I'm not affiliated with oreilly in any way)
http://diveintopython.org/ is a good place to start.
(Or, if you aren't going to start learning in the immediate future, this is looking pretty promising:
O'Reilly's "Learning Python" seems pretty decent too: http://oreilly.com/catalog/9780596513986/
O'Reilly's Programming Python is not bad, but it's not a great book, either for beginners or journeymen.
Python in a Nutshell is more suitable as reference book, although I suppose you could use it to learn Python. For a Python reference book, I found David Beazley's Python Essential Reference to be more informative and better organized: http://www.amazon.com/Python-Essential-Reference-Developers-...
As other people have mentioned, Guido's online tutorial is pretty good, and you don't really much else to start programming in Python:
I'm always puzzled by people recommending Mark Pilgrim's Dive into Python. I don't find it a good choice for Python beginners.
Get dozens of book recommendations delivered straight to your inbox every Thursday.