Cú pháp cơ bản: biến, nhập/xuất, điều kiện, vòng lặp, toán tử logic
This content is not available in your language yet.
Mục tiêu
Phần tiêu đề “Mục tiêu”Sau bài này, bạn sẽ:
- Hiểu bản chất biến trong Python là một nhãn tham chiếu đến đối tượng trong bộ nhớ, phân biệt các kiểu dữ liệu nguyên thủy (
int,float,bool,str). - Nắm vững toán tử số học, phân biệt so sánh giá trị (
==) với so sánh định danh vùng nhớ (is). - Sử dụng thành thạo toán tử logic (
and,or,not) và nắm bắt cơ chế đánh giá ngắn mạch (short-circuit evaluation). - Viết thành thạo cấu trúc rẽ nhánh (
if–elif–else) và các vòng lặp (for,while), kết hợprange(),enumerate(),break,continue. - Áp dụng trực tiếp cú pháp điều khiển để xây dựng vòng lặp tối ưu hóa tham số mô hình AI.
Cần biết trước
Phần tiêu đề “Cần biết trước”This lesson needs nothing before it. You can start right away.
Trực giác
Phần tiêu đề “Trực giác”Hãy tưởng tượng bạn đang huấn luyện một mô hình trí tuệ nhân tạo để nhận biết khách hàng tiềm năng. Mô hình cần liên tục thực hiện hàng loạt quyết định logic:
- “Nếu điểm tín dụng của khách hàng lớn hơn 700 và thu nhập trên 15 triệu, hãy xếp vào nhóm A.”
- “Lặp lại quá trình điều chỉnh trọng số 100 lần, nhưng nếu độ dốc gradient giảm xuống gần bằng 0 thì dừng lại ngay để tiết kiệm thời gian.”
Mọi thuật toán AI dù phức tạp đến đâu — từ hồi quy tuyến tính đến các mô hình ngôn ngữ lớn (LLM) — đều được xây dựng từ những viên gạch cơ bản nhất của ngôn ngữ lập trình: lưu trữ dữ liệu vào biến, kiểm tra điều kiện, và lặp lại các phép tính.
Hiểu sâu sắc cú pháp và cơ chế thực thi bên dưới của Python sẽ giúp bạn tránh được những lỗi logic tai hại khi xử lý hàng triệu điểm dữ liệu huấn luyện.
Lý thuyết
Phần tiêu đề “Lý thuyết”Biến và Cơ chế Tham chiếu Đối tượng
Phần tiêu đề “Biến và Cơ chế Tham chiếu Đối tượng”Trong nhiều ngôn ngữ lập trình như C++ hay Java, một biến giống như một chiếc hộp chứa giá trị: gán giá trị nghĩa là đổ dữ liệu vào hộp. Nhưng trong Python:
Biến là một chiếc nhãn (name tag) dán vào một đối tượng cụ thể trong bộ nhớ RAM.
Khi bạn viết x = 10, Python tạo ra một đối tượng số nguyên có giá trị 10 trong vùng nhớ, sau đó gán nhãn x trỏ tới đối tượng đó.
- Hàm
type(x): Trả về kiểu dữ liệu của đối tượng mà biến đang trỏ tới. - Hàm
id(x): Trả về mã số định danh duy nhất (tương ứng với địa chỉ ô nhớ) của đối tượng.
a = [1, 2, 3]b = a # b dán nhãn vào cùng danh sách mà a đang trỏ tới!b.append(4)# Lúc này a cũng trở thành [1, 2, 3, 4]Các Kiểu Dữ Liệu Nguyên Thủy
Phần tiêu đề “Các Kiểu Dữ Liệu Nguyên Thủy”- Số nguyên (
int): Có độ chính xác tùy ý, không bị giới hạn tràn số như kiểu 32-bit hay 64-bit trong các ngôn ngữ khác. - Số thực (
float): Tuân theo chuẩn IEEE 754 (độ chính xác kép 64-bit). Cần đặc biệt chú ý sai số xấp xỉ nhị phân: không bao giờ dùng==để so sánh hai số thực trong các thuật toán máy học; hãy dùng khoảng sai số epsilon hoặcmath.isclose(a, b). - Giá trị logic (
bool): Chỉ mang một trong hai giá trịTruehoặcFalse. - Chuỗi văn bản (
str): Chuỗi ký tự Unicode bất biến (immutable). Dùng f-string (f"Giá trị: {val:.2f}") để định dạng văn bản trực quan.
Toán Tử Logic và Đánh Giá Ngắn Mạch
Phần tiêu đề “Toán Tử Logic và Đánh Giá Ngắn Mạch”Python hỗ trợ ba toán tử logic: and, or, và not.
Quy tắc chuyển đổi sang chân lý (Truthy và Falsy): Trong ngữ cảnh điều kiện, các giá trị sau đây được coi là False:
- Số
0,0.0 - Đối tượng rỗng:
"",[],(),{},set() - Hằng số
NonevàFalse
Mọi giá trị khác đều được coi là True.
Cơ chế Đánh giá Ngắn mạch (Short-circuit Evaluation):
- Với
A or B: NếuAđúng, Python kết luận ngay kết quả làTruemà không bao giờ tính biểu thứcB. - Với
A and B: NếuAsai, Python kết luận ngay kết quả làFalsemà bỏ quaB.
Đặc tính này rất hữu ích khi bạn cần kiểm tra điều kiện an toàn trước khi truy xuất dữ liệu:
if data is not None and len(data) > 0: process(data)Cấu Trúc Điều Kiển: Điều Kiện và Vòng Lặp
Phần tiêu đề “Cấu Trúc Điều Kiển: Điều Kiện và Vòng Lặp”Python dùng khoảng thụt lề (thường là 4 dấu cách) để xác định khối lệnh (block scope), thay vì dùng cặp dấu ngoặc nhọn {}:
- Rẽ nhánh
if–elif–else: Kiểm tra tuần tự từ trên xuống dưới, chỉ thực thi khối lệnh đầu tiên có điều kiện thỏa mãn. - Vòng lặp
for: Lặp qua từng phần tử của một đối tượng có thể lặp (iterable) như dãy số, danh sách:range(stop)hoặcrange(start, stop, step): Sinh dãy chỉ số.enumerate(iterable): Trả về cặp(chỉ_số, phần_tử), rất phổ biến khi cần đếm số bước huấn luyện (step/epoch).zip(list1, list2): Ghép từng cặp phần tử tương ứng của hai danh sách cùng lúc.
- Vòng lặp
while: Tiếp tục lặp chừng nào điều kiện còn đúng. Thường dùng khi thuật toán tối ưu chưa đạt ngưỡng hội tụ. breakvàcontinue:break: Thoát khỏi vòng lặp ngay lập tức.continue: Bỏ qua các câu lệnh còn lại của vòng lặp hiện tại để chuyển sang vòng lặp kế tiếp.
Minh họa
Phần tiêu đề “Minh họa”Bảng dưới đây tóm tắt các phép toán số học và toán tử logic cốt lõi trong Python:
| Toán tử | Cú pháp | Ý nghĩa trong tính toán AI | Ví dụ |
|---|---|---|---|
| Chia thực | / | Chia trả về kết quả số thực float | 7 / 2 -> 3.5 |
| Chia nguyên | // | Chia lấy phần sàn, thường dùng chia batch | 7 // 2 -> 3 |
| Chia dư | % | Lấy phần dư, dùng để in log mỗi epoch | step % 10 == 0 |
| Lũy thừa | ** | Tính mũ (bình phương sai số trong loss) | error ** 2 |
| So sánh giá trị | ==, != | Kiểm tra độ tương đương nội dung | y_pred == y_true |
| So sánh vùng nhớ | is, is not | Kiểm tra đối tượng duy nhất (thường dùng cho None) | model is None |
| Toán tử logic | and, or, not | Kết hợp nhiều điều kiện lọc mẫu dữ liệu | score > 0.8 and not flagged |
Quy trình vòng lặp tối ưu hóa hội tụ cơ bản trong máy học:
[ Khởi tạo trọng số w ] │ ▼ ┌──► [ Tính gradient của hàm mất mát: grad = 2 * w ] │ │ │ ▼ │ { Kiểm tra: abs(grad) < tolerance? } │ ├─► ĐÚNG ──► [ Đã hội tụ! Thoát vòng lặp: break ] ──► (Kết thúc) │ │ │ └─► SAI │ │ │ ▼ │ [ Cập nhật trọng số: w = w - lr * grad ] └─────────┘ (Lặp lại cho epoch tiếp theo)Ví dụ code
Phần tiêu đề “Ví dụ code”Các ô dưới đây chạy độc lập. Bạn có thể nhấn nút Chạy để xem ngay kết quả mô phỏng.
Ô thứ nhất ứng dụng vòng lặp for, điều kiện dừng sớm break và phép tính số học để tìm cực tiểu của hàm số thông qua đạo hàm (gradient).
Vòng lặp tối ưu hóa gradient descent cơ bản
# Khởi tạo trọng số và siêu tham sốw = 5.0lr = 0.1tolerance = 1e-4max_epochs = 50
# Vòng lặp tối ưu hóa mô phỏngprint(f"Initial weight: {w:.4f}")for epoch in range(1, max_epochs + 1): grad = 2.0 * w w = w - lr * grad
if abs(grad) < tolerance: print(f"Converged at epoch {epoch}") break
print(f"Final weight: {w:.6f}")print(f"Final gradient: {grad:.6f}")The first run downloads Python, about 10 MB.
Ở đây, hàm số có cực tiểu tại . Tại mỗi epoch, thuật toán cập nhật ngược chiều độ dốc. Khi gradient giảm xuống dưới ngưỡng sai số tolerance = 1e-4, lệnh break lập tức dừng vòng lặp, giúp tránh lãng phí tài nguyên tính toán.
Ô thứ hai minh họa kỹ thuật dùng toán tử logic (and, not) và hàm enumerate() để lọc các mẫu dữ liệu dự đoán hợp lệ từ một tập dữ liệu thô.
Lọc dữ liệu bằng toán tử so sánh và logic
# Dữ liệu điểm tin cậy và cờ cảnh báo: (độ tin cậy, gắn cờ lỗi)samples = [ (0.95, False), (0.42, False), (0.88, True), (0.76, False), (0.31, True), (0.91, False),]
min_conf = 0.70valid_samples = []
# Lọc các mẫu hợp lệ bằng toán tử so sánh và logicfor i, (score, is_flagged) in enumerate(samples): # Chỉ giữ mẫu có độ tin cậy cao và không bị cảnh báo if score >= min_conf and not is_flagged: valid_samples.append((i, score))
pass_rate = len(valid_samples) / len(samples) * 100.0
print(f"Total samples: {len(samples)}")print(f"Valid count: {len(valid_samples)}")print(f"Pass rate: {pass_rate:.1f}%")print(f"Accepted indices: {[idx for idx, _ in valid_samples]}")The first run downloads Python, about 10 MB.
Kết quả tính toán đưa ra số lượng mẫu thỏa mãn điều kiện và tỷ lệ phần trăm mẫu đạt chuẩn. Đây chính là thao tác lọc mẫu (filtering) xuất hiện liên tục trong giai đoạn tiền xử lý dữ liệu trước khi đưa vào mô hình học máy.
Lỗi hay gặp
Phần tiêu đề “Lỗi hay gặp”Kiểm tra nhanh
Phần tiêu đề “Kiểm tra nhanh”Tóm tắt và đọc thêm
Phần tiêu đề “Tóm tắt và đọc thêm”Ý chính:
- Biến trong Python là con trỏ tham chiếu đến đối tượng trong bộ nhớ, phân biệt rõ kiểm tra giá trị (
==) và kiểm tra ô nhớ (is). - Số thực luôn đi kèm sai số nhị phân IEEE 754, cần dùng khoảng sai số khi so sánh độ hội tụ.
- Cơ chế đánh giá ngắn mạch (short-circuit) của toán tử
andvàorgiúp tăng tốc độ kiểm tra và ngăn chặn các lỗi truy xuất bộ nhớ nguy hiểm. - Cấu trúc
if–elif–elsekết hợp các vòng lặpfor(cùngrange,enumerate,zip) tạo nên bộ khung vận hành cho mọi vòng lặp tối ưu hóa thuật toán AI.
Đọc thêm:
- Python Software Foundation (2024). The Python Tutorial: More Control Flow Tools. Hướng dẫn chính thức về vòng lặp, khối điều kiện và hàm
range. - David Goldberg (1991). What Every Computer Scientist Should Know About Floating-Point Arithmetic. Bài viết kinh điển giải thích tường tận nguyên lý và sai số của số thực dấu phẩy động.
- Python Software Foundation (2024). Built-in Types - Truth Value Testing. Tài liệu tra cứu chi tiết về cơ chế Truthy/Falsy và toán tử logic trong Python.
Your browser is blocking storage. Your progress will be lost when you reload the page.
Content licensed under CC BY-NC-SA 4.0. Code under the MIT license.About