Python learning path with syntax, data structures, algorithms, and exercises.
Skip the boring tutorial and go for the fun? 👉 Jump to LeetCode
| # | Script | Rigidity | Status | Lint | Topics |
|---|---|---|---|---|---|
| 01 | Syntax | Soft | ✅ | ✅ | Zen, Docstrings, Imports, Comments, Indents, Quotes, Spacing, Namespaces, Encoding |
| 02 | Scalars | Soft | ✅ | ✅ | Numbers, Boolean, Strings, Arithmetic for more 👉 MathCraft (TBD) |
| 03 | Containers | Soft | ✅ | ✅ | Lists, Tuples, Sets, Dictionary, Stacks/Queues, Collections, Arrays |
| 04 | Loops | Soft | ❌ | If, For, While, Case, Continue/Break/Pass, Iterables | |
| 05 | Functions | Soft | ❌ | Function, Partial, OperatorOverloading, Generator, Coroutines | |
| 06 | Interactive | Soft | ❌ | Printing, PrettyPrint, Prompting, FileHandling, ContextManagers | |
| 07 | Classes | Soft | ❌ | Classes, Variables, Decorators | |
| 08 | OOP | Med | ❌ | Inheritance, Abstraction, Polymorphism, Encapsulation | |
| 09 | LinkedLists | Med | ❌ | Implementation, Traversals, Insert/Delete, Reverse, Circular Lists | |
| 10 | BinaryTrees | Med | ❌ | Implementation, Traversals (in/pre/post), Height/Balance, Views | |
| 11 | HeapsTries | Med | ❌ | Min/Max, PriorityQueues, Tries, Insert/Search | |
| 12 | Hashing | Med | ❌ | Construction, Ops, Collision | |
| 13 | Graphs | Med | ❌ | Construction, Ops, Traversal (BFS/DFS) | |
| 14 | SearchAlgos | Med | ✅ | ❌ | LinearSearch, BinarySearch, JumpSearch, InterpolationSearch |
| 15 | SortAlgos | Med | ✅ | ❌ | Bubble, Quick, Merge, Insertio, Selection, Heap, Counting, Radix, Bucket |
| 16 | Divide&Conquer | Med | ❌ | ❌ | CountInversions, ClosestPair, Strassen, PeakFind, FFT |
| 17 | GreedyAlgos | Med | ❌ | ❌ | IntervalSchedule, IntervalPartition, FractionalKnapsack, HuffmanCoding, MST |
| 18 | DynamicAlgos | Med | ❌ | ❌ | Recursion, Memoization, Tabulation, 2-Pointer, Knapsack, LIS |
| 19 | GraphAlgos | Firm | ❌ | ❌ | Dijkstra, BellmanFord, TopologicalSort, UnionFind, FloydWarshall |
| 20 | Testing | Firm | ❌ | ❌ | Exceptions (Assert, Try/Except/Finally), Date/Time/Calendar, Speed, Space Logging |
| 21 | BitOps | Firm | ❌ | ❌ | Boolean Ops, Bitwise Ops, Bit Math, Bit Shifting, Bit Casting |
| 21 | AdvancedTopics | Firm | ❌ | ❌ | Mutation/Override, Zip, Map/Reduc/Struct, Itertools, Fraction, RegEx |
| HS | HelperScripts | n/a | ✅ | ❌ | Searches, Sorts, LL, BT, Graph, Methods (clear_all, cmp) |
| PS | PracticeSoft | Soft | ❌ | Soft practice questions | |
| PM | PracticeMed | Med | ❌ | Medium practice questions | |
| LC | LeetCode | Soft/Med | ✅ | --- | Leetcode solutions with comments and testing |
Philosopy: Pythonic | Zen
- Relevant lines are grouped together as much as possible.
Linter: ruff
Formatter: black
Execution: line-by-line
- Although some scripts may run directly.
Python: v3.12
Packages: None
CI/CD: ruff, black, mypy, pytest, pre-commit
Inputs: ./inputs (common for all scripts)
Outputs: ./outputs //
Scratch: ./extras/random_notes.py
Helpers: ./extras/helper_scripts.py
- Class recall: from helper_scripts import BinaryTree
- Method recall: from helper_scripts import * quick_sort
DS = data structures BT = binary tree LL = linked list Q = question sol = solution mod = modification ans = answer iter = iterate concat = concatenate lib = library func = function
This project is licensed under the BSD 3-Clause License.