# Practical Python Programming ## [1. Introduction to Python](01_Introduction/00_Overview) * [1.1 Introducing Python](01_Introduction/01_Python) * [1.2 A First Program](01_Introduction/02_Hello_world) * [1.3 Numbers](01_Introduction/03_Numbers) * [1.4 Strings](01_Introduction/04_Strings) * [1.5 Lists](01_Introduction/05_Lists) * [1.6 Files](01_Introduction/06_Files) * [1.7 Functions](01_Introduction/07_Functions) ## [2. Working with Data](02_Working_with_data/00_Overview) * [2.1 Datatypes and Data Structures](02_Working_with_data/01_Datatypes) * [2.2 Containers](02_Working_with_data/02_Containers) * [2.3 Formatted Output](02_Working_with_data/03_Formatting) * [2.4 Sequences](02_Working_with_data/04_Sequences) * [2.5 Collections module](02_Working_with_data/05_Collections) * [2.6 List comprehensions](02_Working_with_data/06_List_comprehension) * [2.7 Object model](02_Working_with_data/07_Objects) ## [3. Program Organization)(03_Program_organization/00_Overview) * [3.1 Functions and Script Writing](03_Program_organization/01_Script) * [3.2 More Detail on Functions](03_Program_organization/02_More_functions) * [3.3 Exception Handling](03_Program_organization/03_Error_checking) * [3.4 Modules](03_Program_organization/04_Modules) * [3.5 Main module](03_Program_organization/05_Main_module) * [3.6 Design Discussion about Embracing Flexibilty](03_Program_organization/06_Design_discussion) ## [4. Classes and Objects)(04_Classes_objects/00_Overview) * [4.1 Introducing Classes](04_Classes_objects/01_Class) * [4.2 Inheritance](04_Classes_objects/02_Inheritance) * [4.3 Special Methods](04_Classes_objects/03_Special_methods) * [4.4 Defining new Exception](04_Classes_objects/04_Defining_exceptions) ## [5. The Inner Workings of Python Objects)(05_Object_model/00_Overview) * [5.1 Dictionaries Revisited (Object Implementation)](05_Object_model/01_Dicts_revisited) * [5.2 Encapsulation Techniques](05_Object_model/02_Classes_encapsulation) ## [6. Generators](06_Generators/00_Overview) * [6.1 Iteration Protocol](06_Generators/01_Iteration_protocol) * [6.2 Customizing Iteration with Generators](06_Generators/02_Customizing_iteration) * [6.3 Producer/Consumer Problems and Workflows](06_Generators/03_Producers_consumers) * [6.4 Generator Expressions](06_Generators/04_More_generators) ## [7. A Few Advanced Topics](07_Advanced_Topics/00_Overview) * [7.1 Variable argument functions](07_Advanced_Topics/01_Variable_arguments) * [7.2 Anonymous functions and lambda](07_Advanced_Topics/02_Anonymous_function) * [7.3 Returning function and closures](07_Advanced_Topics/03_Retuning_functions) * [7.4 Function decorators](07_Advanced_Topics/04_Function_decorators) * [7.5 Static and class methods](07_Advanced_Topics/05_Decorated_methods) ## [8. Testing, Logging, and Debugging](08_Testing_debugging/00_Overview) * [8.1 Testing](08_Testing_debugging/01_Testing) * [8.2 Logging, error handling and diagnostics](08_Testing_debugging/02_Logging) * [8.3 Debugging](08_Testing_debugging/03_Debugging) ## [9. Packages](09_Packages/00_Overview) * [9.1 Packages](09_Packages/01_Packages) * [9.2 Third Party Modules](09_Packages/02_Third_party) * [9.3 Giving your code to others](09_Packages/03_Distribution)