| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A complete, beginner-friendly Python programming course designed to take you from zero experience to building real projects in 30 days. Every lesson includes a hands-on project, clean code examples, and best practices used by professional Python developers.
This repository was built on a simple idea: the best way to learn Python is by writing Python. Every single day, you will read a concept, see it explained with real examples, and then build something with it. No passive reading. No syntax memorization drills. Just code.
What makes this different from other Python tutorials:
| Feature | This Course | Typical Tutorial |
|---|---|---|
| Hands-on project every day | YES | Rarely |
| PEP 8 compliant examples | YES | Sometimes |
| Covers Python 3.10+ features | YES | Often outdated |
| Navigation between lessons | YES | No |
| Real-world project focus | YES | Toy examples |
| Free forever | YES | Usually paywalled |
This course is built for:
You do not need any prior programming experience. You need:
One lesson per day. Read the concept. Study the examples. Build the project. Repeat.
Each day folder contains:
days/day-XX/
├── README.md # Lesson content, concept explanation, code examples
└── project/
├── README.md # Project brief, requirements, how to run
└── solution.py # Reference solution (try it yourself first!)
Tip: Fork this repository and commit your daily work to your own fork. Watching your own progress is one of the most motivating things you can do as a learner.
| Day | Topic | Concepts Covered | Project |
|---|---|---|---|
| 01 | Setup & Hello World | Installation, print(), running scripts | Personal Info Card |
| 02 | Variables & Data Types | int, float, str, bool, type() | Type Explorer |
| 03 | Strings & String Methods | Indexing, slicing, upper(), format(), f-strings | Mad Libs Generator |
| 04 | Numbers & Math | Operators, math module, round(), integer division | Scientific Calculator |
| 05 | User Input | input(), type casting, int(), float() | Interactive Quiz |
| 06 | Lists | Indexing, append(), remove(), slicing, len() | Shopping List Manager |
| 07 | Tuples, Sets & Booleans | Immutability, sets, in, not in, comparisons | Unique Word Counter |
| Day | Topic | Concepts Covered | Project |
|---|---|---|---|
| 08 | Dictionaries | Key-value pairs, .get(), .keys(), .values(), nesting | Contact Book |
| 09 | Conditionals | if, elif, else, ternary operator, match | BMI Calculator |
| 10 | for Loops | range(), enumerate(), zip(), loop unpacking | Multiplication Table |
| 11 | while Loops | Loop control, break, continue, else, sentinel values | Number Guessing Game |
| 12 | Functions Basics | def, parameters, return values, docstrings | Password Generator |
| 13 | Function Arguments | *args, **kwargs, default params, type hints | Currency Converter |
| 14 | Scope & Closures | LEGB rule, global, nonlocal, inner functions | Counter Factory |
| Day | Topic | Concepts Covered | Project |
|---|---|---|---|
| 15 | Error Handling | try, except, finally, raise, custom exceptions | Safe Calculator |
| 16 | File I/O | open(), read(), write(), with, pathlib | Personal Diary |
| 17 | List Comprehensions | Comprehensions, dict/set comprehensions, conditionals | Data Filter Tool |
| 18 | Lambda & Functional Tools | lambda, map(), filter(), sorted(), functools | Functional Pipeline |
| 19 | Modules & Packages | import, from, __name__, pip, virtual envs | Random Quote CLI |
| 20 | OOP: Classes & Objects | class, __init__, instance vs class attributes, methods | Bank Account System |
| 21 | OOP: Inheritance | Inheritance, super(), isinstance(), issubclass() | Animal Kingdom |
| Day | Topic | Concepts Covered | Project |
|---|---|---|---|
| 22 | Dunder Methods | __str__, __repr__, __len__, __eq__, __add__ | Custom Data Structure |
| 23 | Decorators | @decorator, @wraps, stacked decorators, functools | Function Profiler |
| 24 | Generators & Iterators | yield, next(), iter(), generator expressions | Infinite Sequences |
| 25 | Context Managers | with, __enter__, __exit__, contextlib | File Manager |
| 26 | Regular Expressions | re module, patterns, groups, findall(), sub() | Text Parser |
| 27 | JSON & CSV | json, csv, pathlib, data serialization | Grade Book |
| 28 | Working with APIs | urllib, requests, REST concepts, JSON responses | Weather CLI App |
| 29 | Testing with pytest | pytest, assert, fixtures, parametrize, TDD basics | Full Test Suite |
| 30 | Final Project | Everything combined: CLI app architecture, packaging | CLI Todo App |
Every day builds something real. Here is a summary of all 30 projects:
Day 01 Personal Info Card ▸ Print formatted personal details Day 02 Type Explorer ▸ Inspect and convert between data types Day 03 Mad Libs Generator ▸ Interactive story builder using string methods Day 04 Scientific Calculator ▸ Full arithmetic and math functions CLI Day 05 Interactive Quiz ▸ Multiple choice quiz with score tracking Day 06 Shopping List Manager ▸ Add, remove, and view items in a list Day 07 Unique Word Counter ▸ Count unique words in any text input Day 08 Contact Book ▸ Store and look up contacts by name Day 09 BMI Calculator ▸ Calculate and classify body mass index Day 10 Multiplication Table ▸ Generate formatted multiplication tables Day 11 Number Guessing Game ▸ Random number game with hints and retries Day 12 Password Generator ▸ Secure, configurable random passwords Day 13 Currency Converter ▸ Convert between currencies with exchange rates Day 14 Counter Factory ▸ Closure-powered independent counters Day 15 Safe Calculator ▸ Full calculator with proper error handling Day 16 Personal Diary ▸ Write and read timestamped diary entries Day 17 Data Filter Tool ▸ Filter and transform datasets efficiently Day 18 Functional Pipeline ▸ Data transformation using map and filter Day 19 Random Quote CLI ▸ Pull and display quotes from a local module Day 20 Bank Account System ▸ OOP bank account with deposits and withdrawals Day 21 Animal Kingdom ▸ Class hierarchy with sounds and behaviors Day 22 Custom Data Structure ▸ A Stack class with full dunder method support Day 23 Function Profiler ▸ Decorator that measures execution time Day 24 Infinite Sequences ▸ Memory-efficient infinite number sequences Day 25 File Manager ▸ Context manager for safe file operations Day 26 Text Parser ▸ Extract emails, URLs, and data with regex Day 27 Grade Book ▸ Read, write, and analyze student data (CSV/JSON) Day 28 Weather CLI App ▸ Fetch live weather from an API Day 29 Full Test Suite ▸ Write and run tests for previous projects Day 30 CLI Todo App ▸ Feature-complete command-line to-do manager
All code in this repository follows these standards. You should too.
# Correct: snake_case for variables and functions
user_name = "Alice"
def calculate_total(price, tax_rate=0.2):
return price * (1 + tax_rate)
# Correct: PascalCase for classes
class BankAccount:
pass
# Correct: UPPER_SNAKE_CASE for constants
MAX_RETRIES = 3
DEFAULT_TIMEOUT = 30# Always annotate function signatures
def greet(name: str, times: int = 1) -> str:
return (f"Hello, {name}!\n" * times).strip()
# Use the built-in generics (Python 3.10+)
def get_scores(students: list[str]) -> dict[str, int]:
return {student: 0 for student in students}def divide(numerator: float, denominator: float) -> float:
"""Divide numerator by denominator.
Args:
numerator: The number to be divided.
denominator: The number to divide by.
Returns:
The result of the division.
Raises:
ValueError: If denominator is zero.
Example:
>>> divide(10, 2)
5.0
"""
if denominator == 0:
raise ValueError("Cannot divide by zero.")
return numerator / denominatormy_project/
├── README.md
├── requirements.txt
├── .gitignore
├── src/
│ └── my_project/
│ ├── __init__.py
│ └── main.py
└── tests/
└── test_main.py
Contributions are welcome and appreciated. See CONTRIBUTING.md for full guidelines.
Ways to contribute:
This project is licensed under the MIT License. See LICENSE for details.
| Back | FazBrowse Home | New Git URL |