Python for Everyone, 3rd Edition is an introduction to programming designed to serve a wide range of student interests and abilities, focused on the essentials, and on effective learning. It is suitable for a first course in programming for computer scientists, engineers, and students in other disciplines. This text requires no prior programming experience and only a modest amount of high school algebra. Objects are used where appropriate in early chapters and students start designing and implementing their own classes in Chapter 9. New to this edition are examples and exercises that focus on various aspects of data science.
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.