Sub-pillar 9.4 · Python

Học Python đúng cách

Python được Guido van Rossum tạo ra với triết lý "Beautiful is better than ugly, Readable counts". Sub-pillar này dạy Python 3.12+ với Pythonic idioms — type hints first-class, comprehension over loop, duck typing, EAFP, asyncio. Không phải "Java in Python" tutorial.

Python 3.12+ · 14 chương · ~20,000 dòng · 70 bài tập + 110 quiz

Lộ trình 14 chương

Tập trung core ngôn ngữ + stdlib — không bao gồm framework (Django/FastAPI) hay data science (pandas/numpy) ở sub-pillar này. Mỗi chương ~1200-1500 dòng, có: lý thuyết chi tiết, code chạy được, visualizer, 4-5 bài tập, 7-8 quiz, tổng kết. Chương 1-4 là nền tảng, chương 5-7 là kỹ năng hằng ngày (ngoại lệ, module, tệp tin & regex), chương 8-13 đi sâu vào ngôn ngữ và công cụ, chương 14 ghép tất cả thành 4 dự án hoàn chỉnh.

01

Hello Python

pyenv, venv, uv, pyproject.toml, chú thích & docstring, PEP 8, Zen of Python, IDE setup.

Đọc →
02

Variables, Types & Operators

int vô hạn, f-string, input()/print(), bảng toán tử đầy đủ, immutability, == vs is.

Đọc →
03

Data Structures

list/tuple/dict/set, comprehension (list/dict/set/generator), slicing, collections (Counter, defaultdict, deque).

Đọc →
04

Control Flow & Functions

match/case (3.10+), *args/**kwargs, positional-only/keyword-only, LEGB scope, closure.

Đọc →
05

Exceptions & Error Handling

try/except/else/finally, cây phân cấp exception, raise ... from, custom exception, EAFP vs LBYL, ExceptionGroup.

Đọc →
06

Modules & Packages

import, sys.modules, __name__ == "__main__", __init__.py, relative import, sys.path, src layout, circular import.

Đọc →
07

File I/O & Regex

Chế độ mở tệp, with, encoding UTF-8, pathlib, JSON, CSV, và toàn bộ module re.

Đọc →
08

OOP in Python

Class, dunder method, inheritance, MRO, đóng gói & name mangling, @property, @dataclass, ABC, Protocol, duck typing.

Đọc →
09

Iterators, Generators & Itertools

__iter__/__next__, yield, generator expression, lazy eval, infinite, itertools toolbox.

Đọc →
10

Decorators & Context Managers

@functools.wraps, @lru_cache, with statement, @contextmanager, ExitStack.

Đọc →
11

Async Python

GIL, asyncio event loop, async/await, gather/create_task/wait_for, httpx async.

Đọc →
12

Typing & Static Analysis

Type hints, mypy strict, Protocol, TypedDict, Generic syntax PEP 695 (3.12+), narrowing.

Đọc →
13

Testing, Packaging & Tooling

pytest fixture/parametrize/marker, mock, coverage, ruff, build + publish PyPI.

Đọc →
14

Dự án thực chiến

CLI với argparse, thu thập dữ liệu web, gọi REST API có retry, tự động hóa với sqlite3 + cron, checklist chất lượng.

Đọc →

Tại sao học Python core trước framework?

🧠 Mental model

Nhiều người học Python qua Django/Flask/FastAPI tutorial — viết web app được nhưng không hiểu generator, decorator, context manager, asyncio thật sự là gì. Khi gặp bug khó (memory leak với generator, deadlock asyncio, decorator mất metadata), không có khung tham chiếu để debug.

Sub-pillar này đi từ ngôn ngữ + stdlib. Batteries included là điểm mạnh nhất của Python — hiểu stdlib trước, thêm framework là chuyện đơn giản sau.

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Readability counts.
— Zen of Python (PEP 20)
💡 Đối tượng phù hợp

Mới học programming — Python là ngôn ngữ tốt để bắt đầu (cú pháp đơn giản, ít boilerplate). Đã có nền JS/TS hoặc Dart — Python rất dễ tiếp thu, mỗi chương có callout so sánh với JS/Dart để build mental model nhanh.

⚠️ Cảnh báo

Tutorial Python trên internet thường dạy Python 2 cũ (đã EOL 2020) hoặc Python 3 không dùng type hints. Sub-pillar này 100% Python 3.12+ với type hints xuyên suốt — không có code nào "không annotate".

Quan hệ với các sub-pillar khác

Mỗi chương có section "Kết nối" trỏ tới chương khác trong Pillar 9 hoặc trụ cột nền tảng. Ví dụ: Chương 9 (Iterators & Generators) đối chiếu với JavaScript Chương 5 (Iteration Protocol); Chương 11 (asyncio) đối chiếu với Dart Chương 7 (Future & Stream); Chương 12 (typing) gần giống JavaScript Chương 9 (TypeScript Foundations).

Học xong 14 chương → bạn đã có 4 sub-pillar Pillar 9 hoàn chỉnh (Dart, Flutter, JavaScript, Python). Tiếp theo có thể đi sâu vào framework (Django, FastAPI cho Python; React/Next.js cho JS) hoặc ngôn ngữ mới (Go, Rust).