One reason my sister gave me the raspberry pi was to help keep my interest in learning Python programming after I hit my first snags. I started with a book called Learn Python the Hard Way.
It is excellent in some ways. First, it focuses on the command line, which is good both for someone who likes knowing why things work the way they do and who hates the limitations inherent in using a GUI (Graphical User Interface). The emphasis on manually typing in every command, rather than cutting and pasting for speed, helps you learn the commands faster. My favorite feature of the book was the image of what you should see on the screen after running each lesson's program.
I quickly became frustrated, however, with the extent to which the book relied on the "just do it" and "figure it out for yourself" approach in the study drills. Making you think through the logic is one
thing; asking you to do something for which you are not properly prepared is another. For example, at one point the exercise was to search the web for a "list of all Python format characters." During my search, I actually found a message board post where someone asked, in the exact language used in the book, where such a list could be found. One response to the query said the question was unanswerable as it was asked.