Learning Python and Programming Python, both from O’Reilly. I usually trust their publications. They cover both versions and although 2 is deprecated or shortly to be deprecated I think due to the amount of legacy code it’s probably worth knowing both versions.
I haven’t done a huge amount with Python but I know these two are easily enough to get started!
My son found this book to be a wonderful introduction to Python because it introduces you to different ways of using Python. Dispite the title you don’t need to use a Raspberry Pi for all of the programming examples. There is one chapter that deals more with using Python with the physical hardware of a RPi, but much of it can be done on any Linux install.
Someone had mentioned learning C++, and this is my son’s favorite programming language, and although he rarely programs on his RPi’s anymore, he pulls this book out often as a reference.
For those who like to learn by doing, there’s the online “Python Challenge”. You have to write small python programs to advance to the next level. Each “level” has a unique web page on that site, and the correct result from your programs will in turn reveal which web page (URL) to visit next on that site.
This is quite old now, and probably isn’t updated to Python 3, but it is still a really fun and creative way to learn.
Now that I’ve been scripting in Python for a bit, I started reading Python for DevOps:
This book doesn’t teach you the language as much as it gives examples on how to use it. It includes discussion and examples of some 3rd party modules and some modules from the standard library. I’ve learned some really neat stuff from this book and I’m only on chapter 3.