Python bài 05: Điều kiện if, truthiness và match-case
- 18-10-2026
- Toanngo92
- 0 Comments
Giáo trình Python miễn phí · Chương 3/12: Điều kiện và vòng lặp · Bài 05/24.
Mục lục
Mục tiêu bài học
Chuyển quy tắc nghiệp vụ thành các nhánh rõ ràng và kiểm tra đúng các giá trị biên.
Từ quy tắc đến điều kiện
Một quy tắc cần có đầu vào và ngưỡng xác định. Ví dụ: điểm phải trong khoảng 0 đến 10; từ 8 là giỏi, từ 6.5 là khá, còn lại cần tiếp tục luyện tập. Hãy kiểm tra dữ liệu hợp lệ trước khi phân loại.
if kiểm tra điều kiện đầu tiên, elif chỉ được xét khi các điều kiện trước sai, else là trường hợp còn lại. Khi cần chọn duy nhất một loại, dùng một chuỗi if/elif thay vì nhiều if độc lập có thể cùng chạy.
diem = 7.5
if not 0 <= diem <= 10:
print("Điểm không hợp lệ")
elif diem >= 8:
print("Giỏi")
elif diem >= 6.5:
print("Khá")
else:
print("Cần luyện tập")
Kết quả:
Khá
Truthiness và đánh giá ngắn mạch
Các giá trị như None, False, số 0 và các collection rỗng được xem là false trong điều kiện. Tuy vậy, thiếu dữ liệu khác với giá trị bằng 0: nếu 0 là hợp lệ thì cần kiểm tra is None thay vì if not gia_tri.
and và or đánh giá ngắn mạch; chúng trả về một toán hạng chứ không bắt buộc là bool. Có thể dùng điều này để kiểm tra một chuỗi không rỗng trước khi truy cập ký tự, nhưng nên ưu tiên cách viết dễ hiểu hơn các biểu thức quá cô đọng.
ten = ""
print(ten or "Khách")
so_buoi = 0
if so_buoi is not None:
print("Đã nhập số buổi:", so_buoi)
Kết quả:
Khách Đã nhập số buổi: 0
Khi nào dùng match-case?
match-case có từ Python 3.10, hữu ích khi phân nhánh theo mẫu dữ liệu. Với lựa chọn menu đơn giản, if/elif thường đã đủ. Các case chuỗi nên viết bằng literal có dấu nháy; tên trần trong pattern có thể là phép bắt giá trị, không phải so sánh với hằng số như người mới dễ nghĩ.
lenh = "xem"
match lenh:
case "xem":
print("Hiển thị danh sách")
case "thoat":
print("Kết thúc")
case _:
print("Lệnh chưa hỗ trợ")
Kết quả:
Hiển thị danh sách
Để kiểm tra quy tắc điểm số, lần lượt thử -1, 0, 6.5, 8, 10 và 11. Các giá trị ở ngay ngưỡng thường làm lộ lỗi dùng nhầm > với >=. Việc thử có chủ đích giúp xác nhận đúng yêu cầu, không chỉ xác nhận chương trình chạy.
Lỗi thường gặp và lưu ý
- Không viết if diem = 8; phép so sánh dùng ==.
- Giảm lồng if bằng cách kiểm tra đầu vào và các trường hợp đặc biệt sớm.
Ghi nhớ
Điều kiện cần thể hiện đúng quy tắc và ranh giới. Phân biệt None với 0, dùng elif cho các nhóm loại trừ nhau và chỉ dùng match khi làm chương trình dễ đọc hơn.
