A comprehensive Python learning platform with 700+ curated programming issues organized by difficulty. From your first "Hello World" to advanced algorithms and system design — everything you need to master Python is here.
✨ All issues include:
- ✅ Detailed problem descriptions
- ✅ Starter code templates
- ✅ Test case structures
- ✅ Progressive hints
- ✅ Complexity analysis
- ✅ Resource links
- ✅ Python 3.10 or higher
- ✅ Git installed
- ✅ Code editor (VS Code recommended)
# 1. Clone the repository
git clone https://github.com/hackdartstorm/Python.git
cd Python
# 2. Create virtual environment
python -m venv venv
# 3. Activate virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# 4. Install dependencies (optional)
pip install -r requirements.txt# 1. Browse issues
# Visit: https://github.com/hackdartstorm/Python/issues
# 2. Fork the repository
# Click "Fork" button on GitHub
# 3. Clone your fork
git clone https://github.com/YOUR_USERNAME/Python.git
cd Python
# 4. Create a branch
git checkout -b issue-<number>-your-name
# 5. Solve the issue
# Create your solution in the specified path
# 6. Commit and push
git add .
git commit -m "Solve issue #<number>"
git push origin issue-<number>-your-name
# 7. Create Pull Request
# Go to GitHub and click "New Pull Request"| Difficulty | Count | Labels |
|---|---|---|
| Beginner | 200+ | beginner, good first issue |
| Medium | 400+ | medium |
| Advanced | 100+ | advanced |
| Category | Link |
|---|---|
| All Issues | View 700+ Issues |
| Beginner Friendly | View Beginner Issues |
| Good First Issues | View First Issues |
| Medium Difficulty | View Medium Issues |
| Advanced | View Advanced Issues |
| Category | Issues | Topics |
|---|---|---|
| Array Problems | 150+ | Sorting, searching, manipulation |
| String Problems | 100+ | Manipulation, patterns, parsing |
| Dynamic Programming | 100+ | Optimization, recursion |
| Graph Problems | 80+ | BFS, DFS, shortest path |
| Tree Problems | 70+ | BST, traversal, balancing |
| Stack/Queue | 60+ | Data structures, algorithms |
| Hash Table | 50+ | Dictionaries, sets, mapping |
| Math Problems | 40+ | Number theory, calculations |
python-learning/
├── basics/ # Python fundamentals
│ ├── 01_introduction/ # Hello World, input/output
│ ├── 02_variables_types/ # Variables, operators
│ ├── 03_control_flow/ # If/else, loops
│ ├── 04_functions/ # Functions, recursion
│ ├── 05_data_structures/ # Lists, tuples, sets, dicts
│ ├── 06_strings/ # String operations
│ ├── 07_file_handling/ # File I/O
│ ├── 08_oop/ # Object-Oriented Programming
│ ├── 09_error_handling/ # Exceptions, try/except
│ └── 10_advanced/ # Lambda, modules, advanced
├── fastapi/ # FastAPI examples
├── rest_api/ # Flask REST API
├── llm_fundamentals/ # LLM from scratch
├── exercises/ # Exercise solutions
├── data/ # Dataset files
├── .github/
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ └── workflows/ # GitHub Actions
├── README.md # This file
├── CONTRIBUTING.md # Contribution guide
├── CODE_OF_CONDUCT.md # Community guidelines
├── CHANGELOG.md # Version history
├── SECURITY.md # Security policy
└── requirements.txt # Dependencies
We welcome contributions of all kinds! Here's how to help:
| Contribution Type | Description | Good For |
|---|---|---|
| 🐛 Fix Bugs | Fix issues in existing code | All levels |
| 📝 Add Examples | Contribute new Python examples | Beginner+ |
| 🧪 Write Tests | Add unit tests for code | Intermediate+ |
| 📖 Improve Docs | Enhance documentation | All levels |
| 💡 Suggest Features | Propose new learning modules | All levels |
| 🔍 Review PRs | Review and provide feedback | Advanced |
# 1. Fork the repository on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/Python.git
cd Python
# 3. Create a branch
git checkout -b issue-<number>-your-name
# 4. Make your changes
# - Follow PEP 8 style guidelines
# - Add comments explaining your code
# - Include test cases if applicable
# 5. Test your changes
python -m pytest # or run individual scripts
# 6. Commit and push
git add .
git commit -m "feat: add your feature description"
git push origin issue-<number>-your-name
# 7. Create a Pull Request on GitHub- Variables/Functions:
lowercase_with_underscores - Classes:
PascalCase - Constants:
UPPERCASE - Follow PEP 8 style guidelines
Use conventional commits format:
type: short description
Optional details
Types:
| Type | Description |
|---|---|
feat: |
New feature or example |
fix: |
Bug fix |
docs: |
Documentation changes |
style: |
Formatting only |
refactor: |
Code restructuring |
test: |
Adding tests |
Examples:
feat: add list comprehension examples
fix: correct typo in calculator.py
docs: update README with quickstart guide
The project uses automated tools to ensure code quality:
- Black - Code formatting
- Ruff - Linting
- Bandit - Security scanning
Run locally before submitting:
# Format code
black .
# Lint code
ruff check .
# Security scan
bandit -r .- 📖 Contributing Guide - Detailed guidelines
- 💬 GitHub Discussions - Ask questions
- 🐛 Report an Issue - Bug reports & features
- 📧 Contact Maintainers - Direct contact
We pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
Positive Behavior:
- ✅ Demonstrating empathy and kindness
- ✅ Being respectful of differing opinions
- ✅ Giving and accepting constructive feedback
- ✅ Accepting responsibility and apologizing
Unacceptable Behavior:
- ❌ Sexualized language or imagery
- ❌ Trolling, insulting, or derogatory comments
- ❌ Public or private harassment
- ❌ Publishing others' private information
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to conduct@pythonmastery.dev. All complaints will be reviewed and investigated promptly and fairly.
Full Code of Conduct: CODE_OF_CONDUCT.md
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2026 Python Learning Repository
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Python Community - For creating and maintaining Python
- All Contributors - Making this project possible
- Open Source - For the amazing tools and libraries
- You - For learning Python and joining our community!
- 📖 Documentation
- 💬 Discussions
- 🐛 Issues
- ⭐ Star this repo to show support
- 🔔 Watch for updates
- 🍴 Fork to contribute
- 📢 Share with friends
We welcome contributions of all kinds! Here's how you can help:
- 🐛 Fix bugs - Find and fix issues in the codebase
- 📝 Add examples - Contribute new Python examples
- 🧪 Write tests - Add unit tests for existing code
- 📖 Improve docs - Enhance documentation and explanations
- 💡 Suggest features - Propose new learning modules
- 🔍 Review code - Review pull requests from others
- Fork the repository
- Create a branch (
git checkout -b feature/your-feature) - Make your changes
- Test your code
- Commit (
git commit -m 'Add feature') - Push (
git push origin feature/your-feature) - Open a Pull Request
📖 See CONTRIBUTING.md for detailed guidelines.
A huge thank you to everyone who has contributed to making this project better!
|
hackdartstorm Project Creator & Maintainer |
guerrevg Contributor |
aldomelpignano Contributor |
Rey-han-24 Contributor |
Samprithajgowda Contributor |
Want to be here? Make your first contribution!
Happy Coding! 🐍✨