Module 1: Why Python?
- Why do people use Python?
- Is Python a scripting language?
- What can I do with Python?
- What are Python's technical strengths?
Module 2: How Python Runs Programs
- Introducing the Python interpreter
- Program execution
- Execution model variations
Module 3: Numbers
- Python program structure
- Why use built-in types?
- Numbers
- Python expression Operators
- Numbers in action
- The dynamic typing interlude
Module 4: Strings
- String literals
- Strings in action
- String formatting
- String methods
- General type categories
Module 5: Lists & Dictionaries
- Lists
- Lists in action
- Dictionaries
- Dictionaries in action
Module 6: Tuples, Files & Everything Else
- Tuples
- Files
- Type categories revisited
- Object generality
- References versus copies
- Comparisons, equality, and truth
- Python's type hierarchies
- Other types in Python
- Built-in type gotchas
Module 7: Assignment, Expressions, & Print
- Assignment statements
- Expression statements
- Print statements
Module 8: If Test
- If statements
- Python syntax rules
- Truth tests
Module 9: While And For Loops
- While loops
- Break, continue, pass, and the loop else
- For loops
- Loop variations
Module 10: Function Basics
- Why use functions?
- Coding functions
- Definition & calls
- Intersecting sequences
Module 11: Scopes & Arguments
- Scope rules
- The global statement
- Scopes and nested functions
- Passing arguments
- Special argument matching modes
Module 12: The Big Picture
- Why use modules?
- Python program architecture
- How imports work
Module 13: Coding Basics
- Module creation
- Module usage
- Module namespaces
- Reloading modules
Module 14: Packages
- Package import basics
- Package import example
- Why use package imports?
Module 15: OOP: The Big Picture
- Why use classes?
- OOP from 30,000 feet
Module 16: Class Coding Basics
- Classes generate multiple instance objects
- Classes are customized by inheritance
- Classes can intercept python operators
Module 17: Class Coding Details
- The class statement
- Methods
- Inheritance
- Operator overloading
- Namespaces
Module 18: Designing with Classes
- Python and OOP
- Classes as records
- OOP and inheritance: "is-a" relationships
- OOP and composition: "has-a" relationships
- OOP and delegation
- Multiple inheritance
- Classes are objects: Generic object factories
- Methods are objects: Bound or unbound
- Classes versus modules
Module 19: Exception Basics
- Why use exceptions?
- Exception handling: The short story
- The try/except/else statement
- The try/finally statement
- The raise statement
- The assert statement
Module 20: Exception Objects
- String-based exceptions
- Class-based exceptions
- General raise statement forms
Module 21: Designing with Exceptions
- Nesting exception handlers
- Exception idioms
- Exception design tips
- Exception gotchas
- Core language summary
Module 22: Common Task in Python
- Conversions, numbers and comparisons
- Manipulating strings
- Data structure manipulations
- Manipulating files and directories
- Internet-related modules
- Executing programs
- Debugging, testing, timing, profiling
Module 23: Advanced Topics
- Web frameworks
- GUI frameworks
- Content management frameworks