Python for Everyone, 1st Edition is a comprehensive introduction to Python and computer programming, which focuses on the principles of programming, software engineering, and effective learning. It is designed for a one-semester, mixed-major, first course in programming.
This is an excellent introduction to computer science through Python. Instead of focusing on learning Python by itself, it can easily be used as a stepping stone into other strongly-typed languages and object-oriented programming. If you want to focus on Python tricks and shortcuts, this is not the book for you. If you want a college level intro into programming and computer science that uses Python, then this is a great resource and textbook.
This was my book for an introduction to software development. It gave practical examples as well as the history behind python. I am a "why" type of learner, and this book gives great examples of why python is written the way it is.