Think Python

Book description

If you want to learn how to program, working with Python is an excellent way to start. This hands-on guide takes you through the language one step at a time, beginning with basic programming concepts before moving on to functions, recursion, data structures, and object-oriented design. Through exercises in each chapter, you’ll try out programming concepts as you learn them.

Table of contents

  1. Think Python
  2. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  3. Preface
    1. The Strange History of This Book
    2. Acknowledgments
    3. Contributor List
  4. 1. The Way of the Program
    1. The Python Programming Language
    2. What Is a Program?
    3. What Is Debugging?
    4. Syntax Errors
    5. Runtime Errors
    6. Semantic Errors
    7. Experimental Debugging
    8. Formal and Natural Languages
    9. The First Program
    10. Debugging
    11. Glossary
    12. Exercises
  5. 2. Variables, Expressions, and Statements
    1. Values and Types
    2. Variables
    3. Variable Names and Keywords
    4. Operators and Operands
    5. Expressions and Statements
    6. Interactive Mode and Script Mode
    7. Order of Operations
    8. String Operations
    9. Comments
    10. Debugging
    11. Glossary
    12. Exercises
  6. 3. Functions
    1. Function Calls
    2. Type Conversion Functions
    3. Math Functions
    4. Composition
    5. Adding New Functions
    6. Definitions and Uses
    7. Flow of Execution
    8. Parameters and Arguments
    9. Variables and Parameters Are Local
    10. Stack Diagrams
    11. Fruitful Functions and Void Functions
    12. Why Functions?
    13. Importing with from
    14. Debugging
    15. Glossary
    16. Exercises
  7. 4. Case Study: Interface Design
    1. TurtleWorld
    2. Simple Repetition
    3. Exercises
    4. Encapsulation
    5. Generalization
    6. Interface Design
    7. Refactoring
    8. A Development Plan
    9. Docstring
    10. Debugging
    11. Glossary
    12. Exercises
  8. 5. Conditionals and Recursion
    1. Modulus Operator
    2. Boolean Expressions
    3. Logical Operators
    4. Conditional Execution
    5. Alternative Execution
    6. Chained Conditionals
    7. Nested Conditionals
    8. Recursion
    9. Stack Diagrams for Recursive Functions
    10. Infinite Recursion
    11. Keyboard Input
    12. Debugging
    13. Glossary
    14. Exercises
  9. 6. Fruitful Functions
    1. Return Values
    2. Incremental Development
    3. Composition
    4. Boolean Functions
    5. More Recursion
    6. Leap of Faith
    7. One More Example
    8. Checking Types
    9. Debugging
    10. Glossary
    11. Exercises
  10. 7. Iteration
    1. Multiple Assignment
    2. Updating Variables
    3. The while Statement
    4. break
    5. Square Roots
    6. Algorithms
    7. Debugging
    8. Glossary
    9. Exercises
  11. 8. Strings
    1. A String Is a Sequence
    2. len
    3. Traversal with a for Loop
    4. String Slices
    5. Strings Are Immutable
    6. Searching
    7. Looping and Counting
    8. String Methods
    9. The in Operator
    10. String Comparison
    11. Debugging
    12. Glossary
    13. Exercises
  12. 9. Case Study: Word Play
    1. Reading Word Lists
    2. Exercises
    3. Search
    4. Looping with Indices
    5. Debugging
    6. Glossary
    7. Exercises
  13. 10. Lists
    1. A List Is a Sequence
    2. Lists Are Mutable
    3. Traversing a List
    4. List Operations
    5. List Slices
    6. List Methods
    7. Map, Filter, and Reduce
    8. Deleting Elements
    9. Lists and Strings
    10. Objects and Values
    11. Aliasing
    12. List Arguments
    13. Debugging
    14. Glossary
    15. Exercises
  14. 11. Dictionaries
    1. Dictionary as a Set of Counters
    2. Looping and Dictionaries
    3. Reverse Lookup
    4. Dictionaries and Lists
    5. Memos
    6. Global Variables
    7. Long Integers
    8. Debugging
    9. Glossary
    10. Exercises
  15. 12. Tuples
    1. Tuples Are Immutable
    2. Tuple Assignment
    3. Tuples as Return Values
    4. Variable-Length Argument Tuples
    5. Lists and Tuples
    6. Dictionaries and Tuples
    7. Comparing Tuples
    8. Sequences of Sequences
    9. Debugging
    10. Glossary
    11. Exercises
  16. 13. Case Study: Data Structure Selection
    1. Word Frequency Analysis
    2. Random Numbers
    3. Word Histogram
    4. Most Common Words
    5. Optional Parameters
    6. Dictionary Subtraction
    7. Random Words
    8. Markov Analysis
    9. Data Structures
    10. Debugging
    11. Glossary
    12. Exercises
  17. 14. Files
    1. Persistence
    2. Reading and Writing
    3. Format Operator
    4. Filenames and Paths
    5. Catching Exceptions
    6. Databases
    7. Pickling
    8. Pipes
    9. Writing Modules
    10. Debugging
    11. Glossary
    12. Exercises
  18. 15. Classes and Objects
    1. User-Defined Types
    2. Attributes
    3. Rectangles
    4. Instances as Return Values
    5. Objects Are Mutable
    6. Copying
    7. Debugging
    8. Glossary
    9. Exercises
  19. 16. Classes and Functions
    1. Time
    2. Pure Functions
    3. Modifiers
    4. Prototyping Versus Planning
    5. Debugging
    6. Glossary
    7. Exercises
  20. 17. Classes and Methods
    1. Object-Oriented Features
    2. Printing Objects
    3. Another Example
    4. A More Complicated Example
    5. The init Method
    6. The __str__ Method
    7. Operator Overloading
    8. Type-Based Dispatch
    9. Polymorphism
    10. Debugging
    11. Interface and Implementation
    12. Glossary
    13. Exercises
  21. 18. Inheritance
    1. Card Objects
    2. Class Attributes
    3. Comparing Cards
    4. Decks
    5. Printing the Deck
    6. Add, Remove, Shuffle, and Sort
    7. Inheritance
    8. Class Diagrams
    9. Debugging
    10. Data Encapsulation
    11. Glossary
    12. Exercises
  22. 19. Case Study: Tkinter
    1. GUI
    2. Buttons and Callbacks
    3. Canvas Widgets
    4. Coordinate Sequences
    5. More Widgets
    6. Packing Widgets
    7. Menus and Callables
    8. Binding
    9. Debugging
    10. Glossary
    11. Exercises
  23. A. Debugging
    1. Syntax Errors
      1. I Keep Making Changes and It Makes No Difference
    2. Runtime Errors
      1. My Program Does Absolutely Nothing
      2. My Program Hangs
        1. Infinite loop
        2. Infinite recursion
        3. Flow of execution
      3. When I Run the Program, I Get an Exception
      4. I Added So Many Print Statements I Get Inundated with Output
    3. Semantic Errors
      1. My Program Doesn’t Work
      2. I’ve Got a Big Hairy Expression and It Doesn’t Do What I Expect
      3. I’ve Got a Function or Method That Doesn’t Return What I Expect
      4. I’m Really, Really Stuck and I Need Help
      5. No, I Really Need Help
  24. B. Analysis of Algorithms
    1. Order of Growth
    2. Analysis of Basic Python Operations
    3. Analysis of Search Algorithms
    4. Hashtables
  25. C. Lumpy
    1. State Diagram
    2. Stack Diagram
    3. Object Diagrams
    4. Function and Class Objects
    5. Class Diagrams
  26. Index
  27. About the Author
  28. Colophon
  29. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  30. Copyright

Product information

  • Title: Think Python
  • Author(s): Allen B. Downey
  • Release date: August 2012
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781449330729