1. Introduction
  2. 1. Overview
  3. Summary
  4. 2. Table of Contents
  5. Basic Principles
  6. 3. Principles
    1. 3.1. Good Habits
    2. 3.2. Coding Standards
    3. 3.3. Error Handling
      1. 3.3.1. Error Types
    4. 3.4. Testing
    5. 3.5. Documentation
  7. Data Types
  8. 4. Numbers
    1. 4.1. Integers
    2. 4.2. Floating-point Numbers
    3. 4.3. Complex Numbers
  9. 5. Booleans
  10. 6. Strings
    1. 6.1. String Formatting
    2. 6.2. String Methods
    3. 6.3. Lists
      1. 6.3.1. List Comprehensions
  11. 7. Tuples
  12. 8. Dictionaries
    1. 8.1. Dictionary Comprehensions
  13. 9. Sets
  14. Code Organization
  15. 10. Modules
  16. 11. Packages
  17. 12. Variables
    1. 12.1. Global vs. Local Variables
  18. 13. Functions
    1. 13.1. Lambda Functions
    2. 13.2. Higher-order Functions
    3. 13.3. Difference between yield and return
  19. 14. Methods
    1. 14.1. Instance Methods
    2. 14.2. Class Methods
    3. 14.3. Static Methods
  20. 15. Classes
    1. 15.1. Example
    2. 15.2. Inheritance
    3. 15.3. Polymorphism
    4. 15.4. Encapsulation
    5. 15.5. Abstract Classes
  21. 16. Objects
  22. Scoping and Namespaces
  23. 17. Namespaces
  24. 18. Scopes
    1. 18.1. LEGB
  25. Code Operations
  26. 19. Operations
    1. 19.1. Comparison Operations
    2. 19.2. Logical Operations
    3. 19.3. Bitwise Operations
    4. 19.4. Assignment Operations
    5. 19.5. Try-Except Blocks
    6. 19.6. Custom Exceptions
  27. File Handling
  28. 20. File Handling
    1. 20.1. File Operations
  29. Advanced Topics
  30. 21. Decorators
  31. 22. Generators
  32. 23. Context Managers
  33. 24. Concurrency
    1. 24.1. Threads
    2. 24.2. Asynchronous Programming
  34. 25. Memory Management
  35. 26. Profiling and Optimization
  36. 27. API
    1. 27.1. Requests
  37. 28. Environment Variables
  38. 29. Web Scraping
  39. Libraries and Frameworks
  40. 30. Standard Library
  41. 31. Popular Libraries
    1. 31.1. Pandas
    2. 31.2. Tkinter
      1. 31.2.1. Tkinter Demo Script
    3. 31.3. Json
  42. 32. Frameworks
  43. Tools and Best Practices
  44. 33. Version Control
  45. 34. Integrated Development Environments (IDEs)
  46. 35. Build Tools
  47. 36. Code Review
  48. 37. Continuous Integration and Deployment
  49. S.O.L.I.D Principles
  50. 38. Good Architecture
  51. 39. Single Responsibility Principle
  52. 40. Open/Closed Principle
  53. 41. Liskov Substitution Principle
  54. 42. Interface Segregation Principle
  55. 43. Dependency Inversion Principle

Notes about Python

Dependency Inversion Principle