书籍目录
Preface
The way of the program
What is a program?
Running Python
The first program
Arithmetic operators
Values and types
Formal and natural languages
Debugging
Glossary
Exercises
Variables, expressions and statements
Assignment statements
Variable names
Expressions and statements
Script mode
Order of operations
String operations
Comments
Debugging
Glossary
Exercises
Functions
Function calls
Math functions
Composition
Adding new functions
Definitions and uses
Flow of execution
Parameters and arguments
Variables and parameters are local
Stack diagrams
Fruitful functions and void functions
Why functions?
Debugging
Glossary
Exercises
Case study: interface design
The turtle module
Simple repetition
Exercises
Encapsulation
Generalization
Interface design
Refactoring
A development plan
docstring
Debugging
Glossary
Exercises
Conditionals and recursion
Floor division and modulus
Boolean expressions
Logical operators
Conditional execution
Alternative execution
Chained conditionals
Nested conditionals
Recursion
Stack diagrams for recursive functions
Infinite recursion
Keyboard input
Debugging
Glossary
Exercises
Fruitful functions
Return values
Incremental development
Composition
Boolean functions
More recursion
Leap of faith
One more example
Checking types
Debugging
Glossary
Exercises
Iteration
Reassignment
Updating variables
The while statement
break
Square roots
Algorithms
Debugging
Glossary
Exercises
Strings
A string is a sequence
len
Traversal with a for loop
String slices
Strings are immutable
Searching
Looping and counting
String methods
The in operator
String comparison
Debugging
Glossary
Exercises
Case study: word play
Reading word lists
Exercises
Search
Looping with indices
Debugging
Glossary
Exercises
Lists
A list is a sequence
Lists are mutable
Traversing a list
List operations
List slices
List methods
Map, filter and reduce
Deleting elements
Lists and strings
Objects and values
Aliasing
List arguments
Debugging
Glossary
Exercises
Dictionaries
A dictionary is a mapping
Dictionary as a collection of counters
Looping and dictionaries
Reverse lookup
Dictionaries and lists
Memos
Global variables
Debugging
Glossary
Exercises
Tuples
Tuples are immutable
Tuple assignment
Tuples as return values
Variable-length argument tuples
Lists and tuples
Dictionaries and tuples
Sequences of sequences
Debugging
Glossary
Exercises
Case study: data structure selection
Word frequency analysis
Random numbers
Word histogram
Most common words
Optional parameters
Dictionary subtraction
Random words
Markov analysis
Data structures
Debugging
Glossary
Exercises
Files
Persistence
Reading and writing
Format operator
Filenames and paths
Catching exceptions
Databases
Pickling
Pipes
Writing modules
Debugging
Glossary
Exercises
Classes and objects
Programmer-defined types
Attributes
Rectangles
Instances as return values
Objects are mutable
Copying
Debugging
Glossary
Exercises
Classes and functions
Time
Pure functions
Modifiers
Prototyping versus planning
Debugging
Glossary
Exercises
Classes and methods
Object-oriented features
Printing objects
Another example
A more complicated example
The init method
The __str__ method
Operator overloading
Type-based dispatch
Polymorphism
Debugging
Interface and implementation
Glossary
Exercises
Inheritance
Card objects
Class attributes
Comparing cards
Decks
Printing the deck
Add, remove, shuffle and sort
Inheritance
Class diagrams
Debugging
Data encapsulation
Glossary
Exercises
The Goodies
Conditional expressions
List comprehensions
Generator expressions
any and all
Sets
Counters
defaultdict
Named tuples
Gathering keyword args
Glossary
Exercises
Debugging
Syntax errors
Runtime errors
Semantic errors
Analysis of Algorithms
Order of growth
Analysis of basic Python operations
Analysis of search algorithms
Hashtables
Glossary
没有回复内容