if / elif / else nâng cao
Mục tiêu
Sau bài này bạn có thể:
- Phân loại dữ liệu thành nhiều nhóm.
- Kết hợp nhiều điều kiện.
- Dùng
and,or,not. - Phân loại khách hàng.
- Phân loại hiệu quả chiến dịch quảng cáo.
- Viết chương trình có nhiều tầng điều kiện.
1. Ôn lại if / elif / else
Cấu trúc:
if điều_kiện_1:
# thực hiện nếu điều kiện 1 đúng
elif điều_kiện_2:
# thực hiện nếu điều kiện 2 đúng
else:
# thực hiện nếu tất cả điều kiện trên đều sai
Ví dụ:
diem = 8
if diem >= 8:
print("Giỏi")
elif diem >= 5:
print("Đạt")
else:
print("Chưa đạt")
Python kiểm tra từ trên xuống dưới.
2. Điều rất quan trọng: thứ tự điều kiện
Ví dụ:
roas = 6
if roas >= 3:
print("Đạt")
elif roas >= 5:
print("Cao")
Kết quả là:
Đạt
Tại sao?
Vì 6 >= 3 đã đúng nên Python dừng lại, không kiểm tra elif.
Muốn phân loại đúng phải viết:
if roas >= 5:
print("ROAS cao")
elif roas >= 3:
print("ROAS đạt")
else:
print("ROAS thấp")
Quy tắc:
Điều kiện cụ thể/cao hơn thường đặt trước điều kiện rộng hơn.
3. Phân loại khách hàng
Giả sử chúng ta có:
tong_chi_tieu = 2500000
Ta muốn phân loại:
>= 5.000.000 → Khách hàng VIP
>= 2.000.000 → Khách hàng thân thiết
>= 500.000 → Khách hàng thường
< 500.000 → Khách hàng mới
Code:
tong_chi_tieu = 2500000
if tong_chi_tieu >= 5000000:
print("Khách hàng VIP")
elif tong_chi_tieu >= 2000000:
print("Khách hàng thân thiết")
elif tong_chi_tieu >= 500000:
print("Khách hàng thường")
else:
print("Khách hàng mới")
Kết quả:
Khách hàng thân thiết
4. Kết hợp nhiều điều kiện với and
Đây là phần rất quan trọng khi phân tích khách hàng.
Ví dụ:
Khách hàng VIP nếu chi tiêu >= 5 triệu VÀ số đơn >= 5.
tong_chi_tieu = 6000000
so_don = 6
if tong_chi_tieu >= 5000000 and so_don >= 5:
print("Khách hàng VIP")
else:
print("Chưa phải VIP")
and nghĩa là:
Tất cả điều kiện đều phải đúng.
Ví dụ:
6 triệu >= 5 triệu → Đúng
6 đơn >= 5 đơn → Đúng
Đúng AND Đúng → Đúng
5. or – chỉ cần một điều kiện đúng
Ví dụ:
Khách hàng cần chăm sóc nếu đã mua hàng nhiều lần HOẶC đã chi tiêu nhiều.
tong_chi_tieu = 6000000
so_don = 2
if tong_chi_tieu >= 5000000 or so_don >= 5:
print("Khách hàng cần chăm sóc đặc biệt")
else:
print("Khách hàng thông thường")
Ở đây:
Chi tiêu >= 5 triệu → Đúng
Số đơn >= 5 → Sai
Nhưng:
Đúng OR Sai → Đúng
6. Bài toán Digital Marketing
Bây giờ chúng ta áp dụng vào quảng cáo.
Có:
chi_phi = 3000000
doanh_thu = 12000000
so_don = 80
Tính:
roas = doanh_thu / chi_phi
Sau đó phân loại:
ROAS >= 5 → Hiệu quả cao
ROAS >= 3 → Hiệu quả đạt
ROAS >= 2 → Cần theo dõi
ROAS < 2 → Hiệu quả thấp
Code:
chi_phi = 3000000
doanh_thu = 12000000
so_don = 80
roas = doanh_thu / chi_phi
if roas >= 5:
print("Hiệu quả cao")
elif roas >= 3:
print("Hiệu quả đạt")
elif roas >= 2:
print("Cần theo dõi")
else:
print("Hiệu quả thấp")
ROAS ở đây:
12.000.000 / 3.000.000 = 4
nên kết quả:
Hiệu quả đạt
7. Kết hợp ROAS + số đơn
Bây giờ nâng cấp.
Giả sử:
Chiến dịch được xem là có hiệu quả tốt khi ROAS >= 3 và số đơn >= 50.
if roas >= 3 and so_don >= 50:
print("Chiến dịch đạt yêu cầu")
else:
print("Cần phân tích thêm")
Đây là cách Python bắt đầu xử lý logic kinh doanh.
8. Phân loại chiến dịch theo nhiều tiêu chí
Ta có:
chi_phi = 3000000
doanh_thu = 12000000
so_don = 80
roas = doanh_thu / chi_phi
if roas >= 5 and so_don >= 100:
print("Chiến dịch hiệu quả cao")
elif roas >= 3 and so_don >= 50:
print("Chiến dịch đạt yêu cầu")
elif roas >= 2:
print("Chiến dịch cần theo dõi")
else:
print("Chiến dịch cần tối ưu")
Ở đây chúng ta đang dùng:
if
elif
and
else
kết hợp với nhau.
9. Bài tập thực hành – Phân loại khách hàng
Tạo file:
bai06.py
Viết chương trình cho phép nhập:
Tên khách hàng
Tổng số tiền đã mua
Số đơn hàng
Gợi ý:
ten = input("Nhập tên khách hàng: ")
tong_chi_tieu = int(input("Nhập tổng chi tiêu: "))
so_don = int(input("Nhập số đơn: "))
Sau đó phân loại:
Quy tắc
VIP:
Chi tiêu >= 5.000.000
VÀ số đơn >= 5
Thân thiết:
Chi tiêu >= 2.000.000
VÀ số đơn >= 3
Khách hàng thường:
Chi tiêu >= 500.000
Khách hàng mới:
Các trường hợp còn lại
Gợi ý code
if tong_chi_tieu >= 5000000 and so_don >= 5:
loai_khach = "VIP"
elif tong_chi_tieu >= 2000000 and so_don >= 3:
loai_khach = "Thân thiết"
elif tong_chi_tieu >= 500000:
loai_khach = "Khách hàng thường"
else:
loai_khach = "Khách hàng mới"
print("Khách hàng:", ten)
print("Phân loại:", loai_khach)
10. ⭐ Bài tập Digital Marketing
Tạo file:
bai07.py
Cho người dùng nhập:
Tên chiến dịch
Chi phí quảng cáo
Doanh thu
Số đơn
Python tự tính:
ROAS
Lợi nhuận
Giá trị trung bình mỗi đơn
Sau đó phân loại chiến dịch:
ROAS >= 5 và số đơn >= 100
→ "Hiệu quả cao"
ROAS >= 3 và số đơn >= 50
→ "Đạt yêu cầu"
ROAS >= 2
→ "Cần theo dõi"
Còn lại
→ "Cần tối ưu"
11. ⭐⭐ Bài tập thử thách
Đây là bài tôi muốn bạn tự suy nghĩ nhiều hơn, chưa cần tôi đưa toàn bộ code.
Dữ liệu nhập:
Tên chiến dịch
Chi phí
Doanh thu
Số đơn
Python tính:
Lợi nhuận
ROAS
Giá trị trung bình/đơn
Sau đó xuất:
========================
BÁO CÁO CHIẾN DỊCH
========================
Tên chiến dịch:
Chi phí:
Doanh thu:
Số đơn:
Lợi nhuận:
ROAS:
Giá trị TB/đơn:
Đánh giá:
Trong đó Đánh giá được quyết định bằng if / elif / else.
🧠 Một kỹ năng mới: tách “tính toán” và “ra quyết định”
Từ bây giờ, hãy tập viết chương trình theo 2 phần:
Phần 1 – Tính toán
doanh_thu = gia * so_luong
loi_nhuan = doanh_thu - chi_phi
roas = doanh_thu / chi_phi
Phần 2 – Ra quyết định
if roas >= 5:
danh_gia = "Hiệu quả cao"
elif roas >= 3:
danh_gia = "Đạt yêu cầu"
else:
danh_gia = "Cần tối ưu"
Đây là tư duy rất quan trọng khi sau này chúng ta chuyển sang Excel/Pandas.
🎯 Bài bạn cần làm hôm nay
Không cần làm tất cả.
Làm 2 bài:
bai06.py
👉 Phân loại khách hàng.
bai07.py
👉 Phân loại chiến dịch Digital Marketing.



Leave a Reply