- Overview
- Project Structure
- Getting Started
- Learning Modules
- Dependencies
- Usage
- Contributing
- Next Steps
This is a comprehensive Python learning project featuring interactive Jupyter notebooks that cover fundamental Python programming concepts. The project is organized into modular sections, each focusing on specific Python topics with hands-on exercises and practical examples.
- Python Basics: Data types, control structures, and core programming concepts
- Functions: Basic and advanced function concepts, parameters, and scope
- Object-Oriented Programming: Classes, inheritance, polymorphism, and magic methods
- Data Structures: Lists, dictionaries, collections, and nested data structures
- File Management: Reading/writing files, CSV handling, and HTTP operations
- Database Operations: PostgreSQL integration and database APIs
- Data Serialization: JSON and XML processing
- Exception Handling: Custom exceptions and error management
- NumPy: Numerical computing and array operations
- Pandas: Data analysis and manipulation
- Matplotlib: Data visualization and plotting
- Standard Library: Built-in Python modules and utilities
ine/
βββ README.md # Project documentation
βββ introduction/ # Python basics and fundamentals
β βββ list.ipynb # Lists and list operations
β βββ Dictionaries.ipynb # Dictionary data structures
β βββ Loops.ipynb # For/while loops and iteration
βββ function/ # Function concepts
β βββ Basic.ipynb # Basic function syntax and usage
β βββ Advanced_Function.ipynb # Advanced function concepts
βββ object-oriented-programming/ # OOP concepts
β βββ Introduction.ipynb # OOP basics
β βββ Atrributes.ipynb # Class attributes
β βββ Method.ipynb # Class methods
β βββ Inheritance.ipynb # Inheritance concepts
β βββ Polymorphism.ipynb # Polymorphism examples
β βββ Super_and_Overriding.ipynb # Method overriding
β βββ Magic_Methods.ipynb # Special methods
β βββ Getattr_Setattr_Hasattr.ipynb # Attribute manipulation
βββ collection/ # Advanced data structures
β βββ Nested Collections.ipynb # Working with nested collections
βββ file-management-and-http/ # File and web operations
β βββ Intro to File Management.ipynb
β βββ Intro to Files (Cheatsheet).ipynb
β βββ Writing_Files.ipynb
β βββ The with context manager.ipynb
β βββ CSV Old School.ipynb
β βββ HTTP Practice.ipynb
β βββ alice.txt # Sample text file
β βββ products.csv # Sample CSV data
βββ database/ # Database operations
β βββ pg/ # PostgreSQL examples
β βββ DB-API.ipynb
β βββ Adapters.ipynb
β βββ Admin-Tools.ipynb
β βββ DDL.ipynb
βββ serialization/ # Data serialization
β βββ Data - Serialization.ipynb # JSON serialization
β βββ XML - Serialization.ipynb # XML processing
β βββ data/ # Sample data files
β βββ data.json
β βββ movie.csv
β βββ movie.txt
β βββ quran.xml
βββ exceptions/ # Error handling
β βββ Custom Exceptions.ipynb # Custom exception classes
βββ numpy/ # Numerical computing
β βββ Introduction.ipynb # NumPy arrays and operations
βββ pandas/ # Data analysis and manipulation
β βββ introduction.ipynb # Getting started with pandas
β βββ Analys.ipynb # Data analysis examples
β βββ Plot_Analsis.ipynb # Data visualization with pandas
β βββ data/
β βββ bestsellers.csv # Amazon bestsellers dataset
β βββ cars.csv # Car data for analysis
β βββ invoices.csv # Sample invoice data
βββ Matplotlib/ # Data visualization
β βββ introduction.ipynb # Plotting and visualization basics
βββ module/ # Python modules
β βββ modules.py # Module examples
βββ standard_library/ # Python standard library usage
- Python 3.7+ installed on your system
- Jupyter Notebook or JupyterLab
- Basic understanding of programming concepts (helpful but not required)
-
Clone the repository
git clone <repository-url> cd ine
-
Create a virtual environment (recommended)
# Using conda conda create -n python-fundamentals python=3.9 conda activate python-fundamentals # Or using venv python -m venv python-fundamentals source python-fundamentals/bin/activate # On Windows: python-fundamentals\Scripts\activate
-
Install required packages
pip install jupyter pandas matplotlib seaborn numpy psycopg2-binary requests
-
Launch Jupyter Notebook
jupyter notebook # or jupyter lab
Begin with the introduction/
folder to learn Python basics:
- Lists: Understanding list data structures and operations
- Dictionaries: Key-value pairs and dictionary methods
- Loops: Iteration and control flow
Explore function/
to understand:
- Basic function syntax and parameters
- Advanced concepts like *args, **kwargs
- Scope and local/global variables
The object-oriented-programming/
section covers:
- Class creation and instantiation
- Attributes and methods
- Inheritance and polymorphism
- Special methods (magic methods)
Learn advanced data manipulation:
- Collections: Working with nested data structures
- File Management: Reading and writing files
- Serialization: JSON and XML processing
Dive into numerical computing and data science:
- NumPy: Array operations and numerical computing
- Pandas: Data manipulation, analysis, and cleaning
- Matplotlib: Creating plots and visualizations
- Database Operations: PostgreSQL integration with DB-API
- Exception Handling: Custom error management
- HTTP Operations: Web requests and APIs
- Standard Library: Built-in Python modules
jupyter>=1.0.0
pandas>=1.3.0
matplotlib>=3.5.0
seaborn>=0.11.0
numpy>=1.21.0
psycopg2-binary>=2.9.0
requests>=2.25.0
- Navigate to the desired module folder
- Open the corresponding
.ipynb
file in Jupyter - Run cells sequentially using
Shift + Enter
- Complete exercises and experiment with the code
- Start with
introduction/
- Python basics (lists, dictionaries, loops) - Progress to
function/
- Function concepts and advanced features - Move to
object-oriented-programming/
- OOP principles and implementation - Explore
collection/
- Advanced data structures - Practice with
file-management-and-http/
- File operations and web requests - Learn
numpy/
- Numerical computing fundamentals - Advance to
pandas/
- Data analysis and manipulation - Visualize with
Matplotlib/
- Creating plots and charts - Experiment with specialized topics - databases, serialization, exceptions
The project includes various sample datasets:
pandas/data/bestsellers.csv
- Amazon bestsellers for analysis practicepandas/data/cars.csv
- Car data for basic operationspandas/data/invoices.csv
- Invoice data for business analyticsfile-management-and-http/products.csv
- Product data for file operationsfile-management-and-http/alice.txt
- Text file for reading exercisesserialization/data/
- Various formats (JSON, CSV, XML) for serialization practice
This is a learning project, but contributions are welcome! Here's how you can help:
- Fork the repository
- Create a new branch for your feature
- Add new notebooks following the existing structure
- Include clear explanations and practical examples
- Test all code cells to ensure they run without errors
- Submit a pull request with a description of your additions
- Fix typos or unclear explanations
- Add more examples or exercises
- Improve code comments and documentation
- Suggest better learning progressions
- Add more sample datasets
- Keep notebooks focused on specific topics
- Include markdown cells with clear explanations
- Provide practical, runnable examples
- Add sample data when helpful
- Follow consistent naming conventions
- Ensure code works with the specified dependencies
After completing this fundamental course, consider exploring:
- Decorators and context managers
- Generators and iterators
- Asyncio and concurrent programming
- Testing with pytest
- Package development and distribution
- Advanced pandas operations (groupby, pivot tables, time series)
- Statistical analysis with SciPy
- Machine learning with Scikit-learn
- Deep learning with TensorFlow or PyTorch
- Data visualization with Plotly and Bokeh
- Flask or Django frameworks
- REST API development
- Database design and management
- Frontend integration with JavaScript
- Financial analysis and quantitative finance
- Bioinformatics and computational biology
- Image processing with OpenCV
- Natural language processing with NLTK/spaCy
- Automation and scripting
- Python.org Documentation
- Real Python Tutorials
- Python Package Index (PyPI)
- Kaggle Learn - For data science
- LeetCode - For algorithm practice
- NumPy Documentation
- Pandas Documentation
- Matplotlib Tutorials
Happy Learning! π
Remember: Programming is best learned by doing. Don't just read the codeβrun it, modify it, and experiment with it. Each notebook is designed to be interactive, so make the most of the hands-on exercises!