Think Python is a concise introduction to software design using the Python programming language. Intended for people with no programming experience, this book starts with the most basic concepts and gradually adds new material. Some of the ideas students find most challenging, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters.

The focus is on the programming process, with special emphasis on debugging. The book includes a wide range of exercises, from short examples to substantial projects, so that students have ample opportunity to practice each new concept. Exercise solutions and code examples are available from, along with Swampy, a suite of Python programs used in some of the exercises.

Table of Contents

  1. Preface
  2. The way of the program
  3. Variables, expressions and statements
  4. Functions
  5. Case study: interface design
  6. Conditional and recursion
  7. Fruitful functions
  8. Iteration
  9. Strings
  10. Case study: word play
  11. Lists
  12. Dictionaries
  13. Tuples
  14. Case study: data structure selection
  15. Files
  16. Classes and objects
  17. Classes and functions
  18. Classes and methods
  19. Inheritance
  20. Debugging