1. Introduction: Why Do We Need Best Practices?
2. Exceptions in Python
3. Semantic Errors in Python
4. Debugging with the Scientific Method
5. Debugging with print Statements
6. Debugging with Introspection Functions
7. Using an Interactive Debugger
8. Writing Automated Tests
9. Organizing Test Data
10. Writing a Test Suite
11. Testing Best Practices
12. Version Control
13. Setting Up a Python Project
14. Cleaning Up Code
15. Decomposing Programming Tasks
16. Static Typing in Python
17. Documentation