1.1 01 - user input.zip
1. User Inputs - Introduction
2. User Inputs - Casting Input Data Types
3.1 02 - try...except.zip
3. Try...Except - Introduction
4. Try...Except - Catching All Error Types
5. Try...Except - Printing The Error Message
6. Try...Except - Using the else block
7. Try...Except - Using the finally block
8. Try...Except - Using the Else and Finally blocks together
9. Try...Except - Raising Exceptions
10. Try...Except - Input Validation
11.1 03 - logging.zip
11. Logging - Introduction
12. Logging - Logging Levels
13. Logging - Logging Configuration
14. Logging - Logging To Multiple Sources
15. Logging - Using Logger Objects
16.1 04 - variable naming convention.zip
16. Variable Naming Convention
17.1 05 - documentation.zip
17. Documentation - Introduction
18. Documentation - Comments
19. Documentation - Docstrings
20.1 06 - environment variables.zip
20. Environment Variables - Introduction
21. Environment Variables - How to Define
22. Environment Variables - How to Use
23. Environment Variables - Why
24.1 07 - debugging.zip
24.2 debugging.zip
24.3 debuggingexercise.zip
24. Debugging - Introduction
25. Debugging - Syntax Errors
26. Debugging - Runtime Errors
27. Debugging - Semantic Errors
28. Debugging - Debugging Techniques
29.1 debuggingexercise.zip
29. Debugging - Using a Debugger
30.1 08 - unittesting.zip
30.2 unittestexample.zip
30. Unittesting - Introduction
31. Unittesting - Writing Unit Tests
32. Unittesting - Assertions
33. Unittesting - Running Unittests
34.1 09 - decorators.zip
34. Python Decorators - Introduction
35. Python Decorators - Example Timing Execution
36.1 10 - chapter summary exercise.zip
36. Python Decorators - Example Authentication