A structured, hands-on guide to mastering Python — from your first print("Hello, World!") to deploying production apps and training ML models.
📖 Start Learning · 🗺️ Learning Roadmap · 📊 Track Progress · ⭐ Original Repo
This is a full English translation of the legendary Python-100-Days course by Luo Hao (jackfrued) — one of the most comprehensive Python learning resources ever written, originally in Chinese with over 150k+ GitHub stars.
All 100+ lesson files have been translated using Gemini 2.5 Flash, preserving all code, formatting, and technical accuracy.
🙏 Full credit to the original author: jackfrued. This repo exists purely to make his excellent work accessible to English-speaking learners. Please star the original repo too!
graph LR
A([🟢 Start Here]) --> B[Day 01-20\nPython Fundamentals]
B --> C[Day 21-30\nFile I/O · APIs · Regex]
C --> D[Day 31-35\nAdvanced Python\nLinux · Web Frontend]
D --> E{Choose Your Path}
E --> F[🌐 Web Dev\nDay 46-60\nDjango · REST · Redis]
E --> G[🕷️ Web Scraping\nDay 61-65\nrequests · Selenium · Scrapy]
E --> H[📊 Data Science\nDay 66-90\nNumPy · Pandas · ML]
F --> I[🚀 Day 91-100\nProduction · Docker · DevOps]
G --> I
H --> I
I --> J([🏆 Python Master])
| Feature | Details |
|---|---|
| 📅 Structured | 100 daily lessons with clear progression |
| 🛠️ Hands-on | Real code examples, not just theory |
| 🌍 Comprehensive | Web dev, data science, ML, DevOps — all in one place |
| 🆓 Free | Completely open source |
| 🔤 In English | Fully translated from the Chinese original |
Fork this repo, then check off days as you complete them!
- Day 01-20: Python Language Fundamentals
- Day 21-30: Python Language Applications
- Day 31-35: Advanced Topics, Linux & Web Frontend
- Day 36-45: SQL, MySQL & Database Fundamentals
- Day 46-60: Django Web Development
- Day 61-65: Web Scraping & Data Collection
- Day 66-80: Data Analysis (NumPy, Pandas, Visualization)
- Day 81-90: Machine Learning
- Day 91-100: Team Dev, Docker, Performance, Deployment
🏷️
beginner· ⏱️ ~3 weeks · Prerequisites: None
Day01 - First Look at Python
- Introduction to Python — History, Pros/Cons, Application Areas
- Installing Python — Windows & macOS
Day02 - Your First Python Program
- Tools for Writing Code
- Hello World
- Commenting Your Code
Day03 - Variables in Python
- Variables and Types
- Variable Naming
- Variable Usage
Day04 - Operators in Python
- Arithmetic, Assignment, Comparison & Logical Operators
- Expressions in Practice — Temperature Conversion, Circle Area, Leap Year
Day05 - Branching Structures
if/else/match/case- Practice — Piecewise functions, Grade conversion, Triangle area
Day06 - Looping Structures
for-inloop ·whileloopbreakandcontinue- Nested loops
- Practice — Primes, GCD, Number Guessing Game
Day07 - Branching & Looping in Practice
- Prime Numbers · Fibonacci · Narcissistic Numbers · Hundred Chickens · CRAPS
Day08 - Lists - Part 1
- Creating, Operating, and Traversing Lists
Day09 - Lists - Part 2
- List Methods · List Comprehensions · Nested Lists
Day10 - Tuples
- Tuple Operations · Packing/Unpacking · Tuples vs Lists
Day11 - Strings
- String Definition · Escape chars · Raw strings
- Concatenation, Comparison, Slicing, Methods, Encoding
Day12 - Sets
- Creating Sets · Set Operations · Membership, Binary & Comparison Ops
Day13 - Dictionaries
- Creating, Operating, and Using Dictionaries
Day14 - Functions and Modules
- Defining Functions · Parameters (positional, keyword, default, variadic)
- Managing Functions with Modules · Standard Library
Day15 - Function Practice
- Verification Code · Primes · GCD/LCM · Statistics · Lottery Numbers
Day16 - Advanced Functions
- Higher-Order Functions · Lambda · Partial Functions
Day17 - Expert-Level Functions
- Decorators · Recursive Calls
Day18 - Intro to OOP
- Classes and Objects · Initialization · Pillars of OOP
- Project: Digital Clock · Point on a Plane
Day19 - Advanced OOP
- Visibility · Property Decorators · Dynamic Properties
- Static Methods · Class Methods · Inheritance · Polymorphism
Day20 - OOP in Action
- Project: Poker Game · Payroll System
🏷️
beginner-intermediate· ⏱️ ~2 weeks · Prerequisites: Day 01-20
Day21 - File I/O and Exception Handling
- Opening/Closing Files · Text & Binary Files
- Exception Handling · Context Managers
Day22 - Object Serialization
- JSON · pip · Fetching Data from Network APIs
Day23 - CSV Files
- Reading and Writing CSV with Python
Day24 - Excel Files - Part 1
- Reading/Writing Excel · Styles · Formula Calculation
Day25 - Excel Files - Part 2
- Excel with openpyxl · Statistical Charts
Day26 - Word & PowerPoint
- Operating Word Documents · Generating PowerPoints
Day27 - PDF Files
- Extract Text · Rotate/Overlay · Encrypt · Watermarks · Create PDFs
Day28 - Image Processing
- Pillow — Processing and Drawing
Day29 - Email and SMS
- Sending Emails · Sending SMS Messages
Day30 - Regular Expressions
- Regex Basics · Python
reModule - Validation · Extraction · Replacement · Splitting
🏷️
intermediate· ⏱️ ~1 week
- Data Structures & Algorithms · Higher-Order Functions
- OOP Deep Dive · Iterators & Generators · Concurrent Programming
- HTML · CSS · JavaScript · Vue.js · Element · Bootstrap
- Linux Overview · Basic Commands · Vim · Shell Programming
- Service Config · Network Management
🏷️
intermediate· ⏱️ ~2 weeks · Prerequisites: Day 01-20
Day37 - SQL: DDL — Create/Drop/Modify Tables
Day38 - SQL: DML — INSERT / DELETE / UPDATE
Day39 - SQL: DQL — SELECT, Filtering, Joins, Window Functions
Day40 - SQL: DCL — Users, Permissions
Day41 - MySQL New Features — JSON Type, Window Functions, CTEs
Day42 - Views, Functions & Procedures
Day43 - Indexes — Execution Plans, Index Types, Best Practices
Day44 - Python + MySQL — Connecting, CRUD, Transactions, ETL
Day45 - Hive Practice — Big Data SQL with Hive
🏷️
intermediate-advanced· ⏱️ ~3 weeks · Prerequisites: Day 01-35
Day46 - Django Quick Start
Day47 - Deep Dive into Models
Day48 - Static Resources and Ajax
Day49 - Cookie and Session
Day50 - Reports and Logs
Day51 - Logs and Debug Toolbar
Day52 - Middleware
Day53 - Frontend-Backend Separation
Day54 - RESTful + DRF: Intro
Day55 - RESTful + DRF: Advanced
Day56 - Caching with Redis
Day57 - Third-Party Platform Integration
Day58 - Async Tasks with Celery
Day59 - Unit Testing
Day60 - Project Deployment
🏷️
intermediate· ⏱️ ~1 week · Prerequisites: Day 01-30
Day61 - Web Scraping Overview
Day64 - Selenium — Dynamic Content
Day65 - Scrapy Framework
🏷️
intermediate-advanced· ⏱️ ~3 weeks · Prerequisites: Day 01-20
Day66 - Data Analysis Overview
Day68 - NumPy - 1 — Arrays, Indexing, Image Processing
Day69 - NumPy - 2 — Descriptive Statistics
Day70 - NumPy - 3 — Operations, ufuncs, Broadcasting
Day71 - NumPy - 4 — Vectors, Matrices, Polynomials
Day72 - Pandas - 1 — Series
Day73 - Pandas - 2 — DataFrame
Day74 - Pandas - 3 — Reshaping & Data Cleaning
Day75 - Pandas - 4 — Grouping, Pivots, Presentation
Day76 - Pandas - 5 — YoY/MoM, Window Functions, Correlation
Day77 - Pandas - 6 — Index Types
Day78 - Data Visualization - 1 — Matplotlib: Line, Scatter, Bar, Pie
Day79 - Data Visualization - 2 — Bubble, Radar, Rose, 3D Charts
Day80 - Data Visualization - 3 — Seaborn & Pyecharts
🏷️
advanced· ⏱️ ~2 weeks · Prerequisites: Day 66-80
Day81 - Introduction to Machine Learning
Day82 - k-Nearest Neighbors (kNN)
Day83 - Decision Trees & Random Forests
Day84 - Naive Bayes
Day85 - Regression Models — Linear, Polynomial, Logistic
Day86 - K-Means Clustering
Day87 - Ensemble Learning — AdaBoost, GBDT, XGBoost, LightGBM
Day88 - Neural Networks
Day89 - Natural Language Processing — BoW, Word2Vec, Transformer
Day90 - ML in Action — End-to-end project
🏷️
advanced· ⏱️ ~2 weeks · Prerequisites: All previous sections
Day91 - Team Dev: Problems & Solutions
Agile/Scrum · Code Review · Git Workflow · Project Scheduling
Day92 - Docker Deep Dive
Containers · Dockerfile · Docker Compose · Kubernetes
Day93 - MySQL Performance Optimization
InnoDB · Indexes · Partitioning · SQL Tuning · Architecture
Day94 - API Design
REST Principles · Documentation
Day95 - Django Commercial Projects
Multi-DB · Cache · REST API · Celery + RabbitMQ
Day96 - Testing & Deployment
Unit Testing · uWSGI/Nginx · HTTPS · Performance Testing · Selenium CI
Day97 - E-commerce Architecture
Day98 - Deployment & Tuning
Day99 - Interview Prep
Day100 - Supplemental Content
# 1. Fork and clone this repo
git clone https://github.com/Viraj97-SL/Python-100-Days.git
cd Python-100-Days
# 2. Install Python 3.10+
# https://www.python.org/downloads/
# 3. Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 4. Open Day 1 and start learning!| Area | Technologies |
|---|---|
| Language | Python 3.10+ |
| Web Framework | Django, DRF |
| Databases | MySQL, Redis, Hive |
| Data Science | NumPy, Pandas, Matplotlib, Seaborn |
| Machine Learning | scikit-learn, XGBoost, LightGBM |
| Web Scraping | requests, BeautifulSoup, Selenium, Scrapy |
| DevOps | Linux, Docker, Nginx, uWSGI, Celery |
Found a translation error or want to improve a section? PRs are very welcome!
- Fork the repo
- Create a branch:
git checkout -b fix/day-XX-translation - Commit your changes
- Open a Pull Request
- Original Author: Luo Hao (jackfrued) — Python-100-Days
- English Translation: Viraj97-SL using Gemini 2.5 Flash
- This project follows the same license as the original. All credit for the educational content belongs to the original author.
If this helped you, please ⭐ this repo and the original Chinese repo!
Made with ❤️ for the global Python community.