Comprehensive Python Workshop: Mastering Fundamentals and Advanced Techniques.
- Introduction to Python
A beginner-friendly introduction to Python, its features, and basic syntax. - Data Structures
Explore essential data structures likeint
,float
,list
,tuple
,dictionary
, andset
. - Index and Slice
Learn how to access and manipulate elements of sequences using indexing and slicing. - Operators and Operands
Study various operators (arithmetic, comparison, logical, etc.) and how they work with operands. - Type Conversions
Understand how to convert data types in Python with explicit and implicit conversions. - Conditional Statements
Learn aboutif-elif-else
andmatch-case
statements for controlling the flow of your programs. - Loops
Master loops (for
,while
) to iterate over sequences and perform repeated tasks. - Functions
Understand how to define and use functions, including parameters and return values. - Built-In Functions
Explore Python's powerful built-in functions and how to leverage them in your programs. - Namespaces and Scopes
Learn about namespaces and scope resolution to avoid name conflicts in your code. - Anonymous Functions (Lambda)
Discover the usage oflambda
expressions for creating small, anonymous functions. - Pack and Unpack Data
Learn how to pack multiple values into a variable and unpack them in Python. - Type Hints and Docstrings
Understand how to improve code readability with type hints and document your functions with docstrings. - Dependencies
Learn how to manage and install dependencies usingpip
andrequirements.txt
and use them in your code. - Comprehensions
Masterlist
,set
,dictionary
, andgenerator
comprehensions for concise and readable code. - Introduction to Object-Oriented Programming (OOP)
Get introduced to the basic concepts of object-oriented programming in Python. - Closures and Decorators
Learn about closures and how to use decorators for enhancing functions. - Object-Oriented Programming Concepts
Explore core OOP concepts such as encapsulation, inheritance, polymorphism, and abstraction. - Context Managers
Learn to manage resources efficiently usingwith
statements and defining custom context managers. - Special Methods
Discover Python's dunder (double underscore) methods for creating custom behavior in your classes. - Errors and Exceptions
Learn about handling errors and exceptions to make your code more robust. - Meta Classes
Dive into metaclasses to understand how classes in Python are created and customized. - Singleton Design
Understand the Singleton Design Pattern for ensuring a class has only one instance, with examples in Python.
- π» Basic Computer Skills
- Familiarity with using a computer, web browsers, and file management.
- π Python Environment Setup
- Ability to set up a Python development environment, including:
- Installation of Python (Anaconda or standalone).
- Familiarity with using Integrated Development Environments (IDEs) like Jupyter Notebook, PyCharm, or Visual Studio Code.
- Ability to set up a Python development environment, including:
This project requires Python v3.10 or higher. It was developed and tested using Python v3.12.8. If you encounter issues, consider using this specific Python version.
Installing matplotlib
, numpy
, pandas
, and torch
is OPTIONAL. They are used exclusively in the Dependencies Notebook to demonstrate how to import and manage dependencies effectively.
Use Poetry for dependency management. It handles dependencies, virtual environments, and locking versions more efficiently than pip. To install dependencies using Poetry:
-
Option 1 [Recommended]: Install exact dependency versions specified in poetry.lock for consistent environments:
poetry install
-
Option 2: Install the latest compatible dependency versions from pyproject.toml and regenerate the poetry.lock file:
poetry install --no-root
Install all dependencies listed in requirements.txt using pip:
pip install -r requirements.txt
If you encounter connection issues during installation, you can try extending the timeout and increasing the number of retries with the following:
-
For Poetry: Use the following command to set the retries and timeout directly in the terminal before running the install:
-
Windows:
-
PowerShell:
$env:POETRY_HTTP_TIMEOUT=300 $env:POETRY_HTTP_RETRIES=10
-
Command Prompt:
set POETRY_HTTP_TIMEOUT=300 set POETRY_HTTP_RETRIES=10
-
-
Linux/macOS:
-
Terminal:
export POETRY_HTTP_TIMEOUT=300 export POETRY_HTTP_RETRIES=10
-
-
-
For Pip: Use the
--retries
and--timeout
flags directly in your pip command:pip install -r requirements.txt --retries 10 --timeout 300
- Open the root folder with VS Code (
Ctrl/Cmd + K
followed byCtrl/Cmd + O
). - Open
.ipynb
files using the Jupyter extension integrated with VS Code. - Select the correct Python kernel and virtual environment where the dependencies were installed.
- Allow VS Code to install any recommended dependencies for working with Jupyter Notebooks.
βοΈ Notes:
- It is highly recommended to stick with the exact dependency versions specified in poetry.lock or requirements.txt rather than using the latest package versions. The repository has been tested on these versions to ensure compatibility and stability.
- This repository is actively maintained, and dependencies are updated regularly to the latest stable versions.
- The table of contents embedded in the notebooks may not function correctly on GitHub.
- For an improved experience, open the notebooks locally or view them via nbviewer.
- 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
- Over 2500 contributors are currently working on Python.
- Link: github.com/python/cpython
- NumPy
- A fundamental package for scientific computing in Python, providing support for arrays, matrices, and a large collection of mathematical functions.
- Official site: numpy.org
- My NumPy Workshop: github.com/mr-pylin/numpy-workshop
- Pandas
- A powerful, open-source data analysis and manipulation library for Python.
- Official site: pandas.pydata.org
- My Pandas Workshop: Coming Soon
- Data Visualization
- A comprehensive collection of Python libraries for creating static, animated, and interactive visualizations: Matplotlib, Seaborn, and Plotly.
- Official sites: matplotlib.org | seaborn.pydata.org | plotly.com
- My MatPlotLib Workshop: github.com/mr-pylin/data-visualization-workshop
- PyTorch
- An open-source machine learning library for Python developed by Meta AI, used for applications such as deep learning and neural networks.
- Official site: pytorch.org
- My PyTorch Workshop: github.com/mr-pylin/pytorch-workshop
Any mistakes, suggestions, or contributions? Feel free to reach out to me at:
I look forward to connecting with you! πββοΈ
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.
- 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.