/python-workshop

Comprehensive Python Workshop: Mastering Fundamentals and Advanced Techniques.

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

🐍 Python Workshop

License Python Version Codacy Badge Code Style Repo Size Last Updated PRs Welcome

Comprehensive Python Workshop: Mastering Fundamentals and Advanced Techniques.

📖 Table of Contents

📖 Main Notebooks

  1. Introduction to Python
    A beginner-friendly introduction to Python, its features, and basic syntax.
  2. Data Structures
    Explore essential data structures like int, float, list, tuple, dictionary, and set.
  3. Index and Slice
    Learn how to access and manipulate elements of sequences using indexing and slicing.
  4. Operators and Operands
    Study various operators (arithmetic, comparison, logical, etc.) and how they work with operands.
  5. Type Conversions
    Understand how to convert data types in Python with explicit and implicit conversions.
  6. Conditional Statements
    Learn about if-elif-else and match-case statements for controlling the flow of your programs.
  7. Loops
    Master loops (for, while) to iterate over sequences and perform repeated tasks.
  8. Functions
    Understand how to define and use functions, including parameters and return values.
  9. Built-In Functions
    Explore Python's powerful built-in functions and how to leverage them in your programs.
  10. Namespaces and Scopes
    Learn about namespaces and scope resolution to avoid name conflicts in your code.
  11. Anonymous Functions (Lambda)
    Discover the usage of lambda expressions for creating small, anonymous functions.
  12. Pack and Unpack Data
    Learn how to pack multiple values into a variable and unpack them in Python.
  13. Type Hints and Docstrings
    Understand how to improve code readability with type hints and document your functions with docstrings.
  14. Dependencies
    Learn how to manage and install dependencies using pip and requirements.txt and use them in your code.
  15. Comprehensions
    Master list, set, dictionary, and generator comprehensions for concise and readable code.
  16. Introduction to Object-Oriented Programming (OOP)
    Get introduced to the basic concepts of object-oriented programming in Python.
  17. Closures and Decorators
    Learn about closures and how to use decorators for enhancing functions.
  18. Object-Oriented Programming Concepts
    Explore core OOP concepts such as encapsulation, inheritance, polymorphism, and abstraction.
  19. Context Managers
    Learn to manage resources efficiently using with statements and defining custom context managers.
  20. Special Methods
    Discover Python's dunder (double underscore) methods for creating custom behavior in your classes.
  21. Errors and Exceptions
    Learn about handling errors and exceptions to make your code more robust.
  22. Meta Classes
    Dive into metaclasses to understand how classes in Python are created and customized.
  23. Singleton Design
    Understand the Singleton Design Pattern for ensuring a class has only one instance, with examples in Python.

📖 Built-in Methods

📋 Prerequisites

  • 💻 Basic Computer Skills
    • Familiarity with using a computer, web browsers, and file management.
  • 🐍 Python Environment Setup

⚙️ Setup

This project was developed using Python v3.12.3. If you encounter issues, consider using this specific Python version.

📝 List of Dependencies

Installing these dependencies is OPTIONAL. They are used exclusively in the Dependencies Notebook to demonstrate how to import and manage dependencies effectively.

matplotlib numpy pandas torch

📦 Install Dependencies

You can install all dependencies listed in requirements.txt using pip:

pip install -r requirements.txt

🛠️ Usage Instructions

  1. Open the root folder with VS Code:
    • Windows/Linux: Ctrl + K followed by Ctrl + O
    • macOS: Cmd + K followed by Cmd + O
  2. Open .ipynb files using Jupyter extension integrated with VS Code.
  3. Allow VS Code to install any recommended dependencies for working with Jupyter Notebooks.

✍️ Notes:

  • The table of contents embedded in the notebooks is not fully functional on GitHub!
  • To navigate the table of contents effectively, open the notebooks locally or view them via nbviewer for a better experience.

🔗 Useful Links

Python

  • Official Website:
    • The main website for Python, offering downloads, news, and community resources.
    • Official site: python.org
  • Documentation
    • Comprehensive guide and reference for all functionalities and features of the Python programming language.
    • Doc: docs.python.org
  • Source Code

Looking Ahead

🔍 Find Me

Any mistakes, suggestions, or contributions? Feel free to reach out to me at:

I look forward to connecting with you! 🏃‍♂️

📄 License

This project is licensed under the Apache License 2.0.
You are free to use, modify, and distribute this code, but you must include copies of both the LICENSE and NOTICE files in any distribution of your work.

✍️ Additional Licensing Information

  • SVG Images:
    • The SVG images located in the ./assets/images/svgs/ folder are licensed under the CC BY-ND 4.0.
    • Note: This license restricts derivative works, meaning you may share these images but cannot modify them.