There are so many excellent resources out there, and a simple search could direct you to the right one. So apart from doing that, let me share you the learning experiences that I have come across; which might help you in finding your right resource; and a way to master it.
In one of my previous stints, involving computational biology, I took up the role of teaching programming to a group of Ph.D. scholars in my lab. While everyone of them was enthusiastic at the beginning, the interest slowly started to drift away. The reason behind the loss of interest, was the resource which I chose to use for the task — an excellent programming book, if I might add — How to Think Like a Computer Scientist: Think Python
It didn't take much, to figure out that they didn't connect with that book, as it, apart from being a phenomenal learning resource, had nothing contextual for a biologist. Soon after, we shifted to the book: Python for Biologists... and well, it turned out to be really awesome.
The lesson I have learnt from this whole endeavour, which I probably already knew but wouldn't have been able to articulate better had I not gone through the above experience, is this:
You learn in an accelerated fashion, when the learning resources use the same context in which you want to achieve results.
Let me give another example, I am excited about game development; so I had a ball of a time, going through the Coursera course, Interactive Programming with Python, where you built small games after every lesson.
So, what's your context? Why do you want to learn Python? Is it because you want to build websites, work with financial models, wrangle biological data, or build games?
The best approach to learn, and master any programming language, in my opinion, and experience; is to go through consistent checks of what you've learned so far, through building tiny, trivial projects; and to seek feedback on your result from the experienced.
In Interactive Programming with Python, right after you're given an intro on the basic things like variables, and conditionals; you're off to building a number guessing game.
Another course which I greatly enjoyed, and which follows the above approach, is Udacity's Intro to Computer Science, which not only introduces you to the fundamentals of computer science, in an "Oh, so awesome!" way; but ensures you are building little parts of a basic search engine, after every lesson.