๐Ÿ Free & Open Source

Learn Python Interactively

Master Python through lessons, hands-on workshops, and coding labs โ€” no setup required.

Get Started

Everything You Need to Learn Python

๐Ÿ“–

Lessons

Read concise theory with syntax-highlighted Python examples, then prove your understanding with a quick quiz.

๐Ÿ”จ

Workshops

Follow step-by-step guided exercises. Each step validates your code before you can move on.

๐Ÿงช

Labs

Solve open-ended challenges. An automated test suite checks your output and gives instant feedback.

Curriculum

#ModuleTypeTime
1Introduction to PythonLESSON~10 min
2Basic Types: int, float, str, bool, NoneLESSON~12 min
3Variables & AssignmentLESSON~10 min
4Variables PracticeLAB~15 min
5Operators: Arithmetic, Comparison, LogicalLESSON~12 min
6Strings: Methods, Slicing, IndexingLESSON~15 min
7f-strings & String FormattingWORKSHOP~20 min
8String Manipulation ChallengeLAB~20 min
9bytes, bytearray, and encode/decodeLESSON~12 min
10if / elif / else & Ternary ExpressionsLESSON~12 min
11Building Decision TreesWORKSHOP~20 min
12Structural Pattern Matching (match/case)LESSON~15 min
13for, while, range(), break, continueLESSON~15 min
14Iterating with enumerate() and zip()WORKSHOP~20 min
15Loop ChallengeLAB~20 min
16Lists: Indexing, Slicing, MethodsLESSON~15 min
17List Manipulation & SortingWORKSHOP~20 min
18Tuples: Immutability & Packing/UnpackingLESSON~12 min
19List Processing LabLAB~20 min
20Dictionaries: CRUD, Iteration, MethodsLESSON~15 min
21Working with Nested DictsWORKSHOP~20 min
22Sets: Operations, Membership, FrozensetLESSON~12 min
23Dictionary ChallengeLAB~20 min
24List, Dict & Set ComprehensionsLESSON~15 min
25Generator Expressions & FilteringWORKSHOP~20 min
26Functions: def, return, DocstringsLESSON~12 min
27*args, **kwargs & Keyword-Only ParamsWORKSHOP~20 min
28Closures & nonlocalLESSON~15 min
29Building Closure-Based UtilitiesWORKSHOP~20 min
30Functions LabLAB~25 min
31lambda, map(), filter(), sorted() key=LESSON~15 min
32functools: partial, reduce, lru_cache, wrapsLESSON~15 min
33Caching & Partial ApplicationWORKSHOP~20 min
34Function Decorators & @ SyntaxLESSON~15 min
35Building Custom DecoratorsWORKSHOP~20 min
36Decorator ChallengeLAB~25 min
37Classes: __init__, self, Instance MethodsLESSON~15 min
38Building a Data Model with ClassesWORKSHOP~25 min
39Inheritance, super(), MROLESSON~15 min
40Extending Classes & super()WORKSHOP~20 min
41Dunder Methods: __str__, __repr__, __eq__, __len__LESSON~15 min
42OOP Lab: Build a Mini LibraryLAB~30 min
43try / except / finally / elseLESSON~12 min
44raise, Custom Exceptions, Exception ChainingWORKSHOP~20 min
45Robust Error Handling LabLAB~25 min
46Iterators: __iter__, __next__, iter(), next()LESSON~15 min
47Generators: yield, yield from, send()LESSON~15 min
48Lazy Pipelines with GeneratorsWORKSHOP~20 min
49with Statement, __enter__/__exit__, contextlibLESSON~15 min
50Building Custom Context ManagersWORKSHOP~20 min
51Type Annotations: list, dict, Optional, Union, AnyLESSON~15 min
52TypeVar, Generic, Protocol (structural subtyping)WORKSHOP~20 min
53ABC, @abstractmethod, ProtocolLESSON~15 min
54Designing with Interfaces via ProtocolWORKSHOP~20 min
55@property, @setter, @deleter, __slots__LESSON~15 min
56Computed Properties & ValidationWORKSHOP~20 min
57@dataclass: fields, frozen, __post_init__LESSON~15 min
58Dataclass Patterns & field()WORKSHOP~20 min
59import, from, __name__, packages, __init__.pyLESSON~15 min
60Creating a Package with Relative ImportsWORKSHOP~20 min
61open(), read/write modes, pathlib.PathLESSON~15 min
62Reading, Writing & Appending FilesWORKSHOP~20 min
63File I/O Lab: Log ParserLAB~25 min
64Counter, defaultdict, deque, namedtuple, OrderedDictLESSON~15 min
65chain, product, combinations, permutations, groupbyLESSON~15 min
66Combining Itertools for Data PipelinesWORKSHOP~20 min
67json.dumps, json.loads, JSONEncoder, JSONDecoderLESSON~12 min
68Working with Nested JSON & Custom EncodingWORKSHOP~20 min
69csv.reader, csv.DictReader, csv.writerWORKSHOP~20 min
70re module: match, search, findall, groups, flagsLESSON~15 min
71Capturing Groups & Named PatternsWORKSHOP~20 min
72datetime, timedelta, strftime, timezone, UTCLESSON~15 min
73Parsing, Formatting & Timezone ConversionWORKSHOP~20 min
74urllib.request, HTTP concepts, status codesLESSON~15 min
75Making Requests & Parsing JSON ResponsesWORKSHOP~20 min
76HTTP Lab: Public API ClientLAB~25 min
77Thread, Lock, RLock, race conditions, GILLESSON~15 min
78Thread Pools with concurrent.futuresWORKSHOP~20 min
79async/await, event loop, coroutines, tasksLESSON~15 min
80asyncio.gather, create_task, timeoutsWORKSHOP~20 min
81Async Lab: Concurrent FetcherLAB~25 min
82unittest: TestCase, assertEqual, setUp, discoveryLESSON~15 min
83Writing Test Suites & Using MockWORKSHOP~20 min
84Testing Lab: TDD ChallengeLAB~25 min
85logging: levels, handlers, formatters, getLoggerLESSON~15 min
86Structured Logging & Multiple HandlersWORKSHOP~20 min
87argparse: add_argument, subcommands, typesLESSON~15 min
88Building a Multi-Command CLI ToolWORKSHOP~20 min
89sqlite3: connect, execute, fetchall, context managerLESSON~15 min
90CRUD Operations & Parameterized QueriesWORKSHOP~20 min
91SQLite3 Lab: Todo DatabaseLAB~25 min
92sorted, key=, reverse, bisect, heapqLESSON~15 min
93Custom Sort Keys & Priority QueuesWORKSHOP~20 min
94cProfile, timeit, line_profiler conceptsLESSON~15 min
95Measuring Bottlenecks & Optimizing CodeWORKSHOP~20 min