Tổng kết cú pháp Python — Lựa chọn giữa luồng điều khiển và hàm

Tổng hợp cú pháp Python (luồng điều khiển và hàm). Kết nối rẽ nhánh điều kiện, vòng lặp, xử lý ngoại lệ, và ứng dụng hàm thành một bản đồ rõ ràng.

Cú pháp Python là bộ công cụ để gắn kết hành vi

Trong Python cơ bản, bạn đã học các kiểu dữ liệu chứa dữ liệuint / str / list / dict. Series Cú pháp Python là tầng tiếp theo: bộ công cụ để luồng hành vi chạy trên dữ liệu đó.

Tất cả nội dung trong series này có thể gom vào bốn nhiệm vụ: rẽ nhánh theo điều kiện, lặp lại công việc, bắt lỗi, và đóng gói logic để tái sử dụng.

Bốn trụ cột làm dữ liệu chuyển động
Kiểu dữ liệuint / str / list ...Ngoại lệtry / exceptRẽ nhánhif / elif / elseVòng lặpfor / whileHàmdef / lambdachọnlặpđóng gói
Đặt trên các kiểu dữ liệu, bốn trụ cột — rẽ nhánh / vòng lặp / hàm / ngoại lệ — là thứ biến giá trị thô thành logic thực sự.

Luồng điều khiển — Rẽ nhánh, Vòng lặp và Ngoại lệ

Ba nhóm cần nhớ: nhóm if để chọn hành vi, nhóm vòng lặp để duyệt qua từng phần tử, và nhóm ngoại lệ để sống sót qua thất bại.

Phân loạiCú pháp / HàmỨng dụng tiêu biểu
Rẽ nhánhif / elif / elseChọn nhánh dựa trên giá trị hoặc trạng thái
Rẽ nhánhall() / any()Kiểm tra hàng loạt xem tất cả hay bất kỳ phần tử nào thỏa điều kiện
Vòng lặpfor + range / enumerate / zipDuyệt từng phần tử của một collection
Vòng lặpwhileLặp khi điều kiện còn đúng (cẩn thận vòng lặp vô hạn)
Vòng lặpList comprehensionGói for + filter + transform vào một dòng
Biểu thức gánToán tử walrus :=Gán và kiểm tra trên cùng một dòng (giảm trùng lặp trong while / if)
Ngoại lệtry / except / finallyBắt lỗi runtime và dọn dẹp
Phát sinhraise / class ngoại lệ tùy chỉnhTự ném ngoại lệ khi giả định bị phá vỡ

Hàm — Bộ công cụ để tái sử dụng

Định nghĩa một hàm bằng def thì đơn giản, nhưng hàm trong Python còn đi kèm bộ công cụ tính năng nâng cao — truyền hàm như giá trị, định nghĩa hàm bên trong hàm, và trang trí chúng — đó là điều khiến code Python trở nên tái sử dụng được và dễ bảo trì.

Bốn nhánh ứng dụng của hàm
def(cơ bản)*args**kwargsBẫy đối sốMutableInner funcClosureyieldGeneratorHigher-ordertruyền hàmlambdahàm vô danh@decoratorgắn lớp phụmap()áp dụng hàng loạtargscẩn thậnscopelazyas valuerút gọntrang tríáp dụng
Quanh def ở trung tâm, bộ công cụ phân nhánh theo bốn hướng: đối số linh hoạt (args/kwargs), thao tác phạm vi (closure, nonlocal), đánh giá lười (generator), và trang trí (higher-order, decorator, lambda, map).
Phân loạiCú pháp / HàmỨng dụng tiêu biểu
Định nghĩadef / returnĐặt tên cho một đoạn logic để có thể tái sử dụng
Đối số*args / **kwargs và nhiều giá trị trả vềNhận số lượng đối số bất kỳ / unpack tại nơi gọi
Cẩn thậnBẫy đối số mutableĐối số list / dict được chia sẻ với caller. Mặc định nên dùng None
ScopeHàm bên trong và closure — global / nonlocalTạo hàm nhớ (hoặc ghi đè) giá trị bên ngoài
Đánh giá lườiHàm generator yieldSinh chuỗi rất lớn từng phần tử một, tiết kiệm bộ nhớ
Hàm như giá trịHigher-order functionNhận hoặc trả về hàm như đối số / giá trị trả về
Hàm như giá trịBiểu thức lambdaHàm vô danh một dòng
Hàm như giá trịmap()Áp dụng một hàm cho mọi phần tử của list cùng lúc
Trang tríDecorator @Gắn thêm logging, đo thời gian hay caching cho hàm có sẵn

Tiếp theo — Đóng gói dữ liệu và hành vi với class

Tiếp theo, Lập trình hướng đối tượng Python sẽ cho bạn thấy cách dùng class để đóng gói dữ liệu (thuộc tính) và hành vi (phương thức) vào một đối tượng duy nhất — đó chính là lập trình hướng đối tượng.

Bức tranh lớn của việc học Python
Python cơ bảnChọn kiểuCú pháp PythonGắn kết hành viPython OOPGộp data + hành vi← bạn ở đâytiếp theoxây trênxây trên
Xếp chồng từ trên: Cơ bản → Cú pháp → OOP. Series này đã bao quát tầng giữa (Cú pháp). Tiếp theo là tầng dưới (OOP).
QUIZ

Kiểm tra kiến thức

Hãy trả lời từng câu hỏi một.

Câu 1Vòng lặp nào phù hợp nhất khi điểm kết thúc được xác định bởi số lượng phần tử cố định?

Câu 2Cách nào ngắn gọn nhất để kiểm tra mọi phần tử của nums đều dương?

Câu 3Cái nào phù hợp nhất để gắn thêm logic chung như logging hay đo thời gian vào hàm có sẵn?