✅❌ Boolean và Logic Cơ Bản - Dạy Python Phân Biệt Đúng Sai
Hãy tưởng tượng Python như một thẩm phán siêu thông minh có thể đưa ra quyết định dựa trên sự thật! Mọi câu hỏi đều chỉ có 2 đáp án: Đúng (True) hoặc Sai (False).
🤔 Boolean Là Gì?
Boolean là kiểu dữ liệu đặc biệt chỉ có 2 giá trị:
- ✅ True (Đúng)
- ❌ False (Sai)
Giống như việc trả lời câu hỏi có/không, đúng/sai, được/không được!
🎯 Tạo Giá Trị Boolean
# Tạo trực tiếp
homework_done = True
is_raining = False
likes_python = True
print(homework_done) # True
print(is_raining) # False
print(type(likes_python)) # <class 'bool'>
True
vàFalse
phải viết hoa chữ cái đầutrue
hoặcTRUE
sẽ bị lỗi!
🔍 Phép So Sánh - Tạo Boolean
📊 1. So Sánh Số
my_age = 15
friend_age = 16
# So sánh bằng
print(my_age == friend_age) # False (15 không bằng 16)
print(my_age == 15) # True (15 bằng 15)
# So sánh lớn hơn, nhỏ hơn
print(my_age > friend_age) # False (15 không lớn hơn 16)
print(my_age < friend_age) # True (15 nhỏ hơn 16)
print(my_age >= 15) # True (15 lớn hơn hoặc bằng 15)
print(my_age <= 14) # False (15 không nhỏ hơn hoặc bằng 14)
# So sánh khác
print(my_age != friend_age) # True (15 khác 16)
📝 2. So Sánh Chuỗi
my_name = "An"
friend_name = "Bình"
# So sánh bằng
print(my_name == "An") # True
print(my_name == "an") # False (phân biệt hoa thường!)
# So sánh khác
print(my_name != friend_name) # True ("An" khác "Bình")
# So sánh thứ tự alphabet
print("An" < "Bình") # True (A đứng trước B)
print("Python" > "Java") # True (P đứng sau J)
🧠 Phép Logic - Kết Hợp Điều Kiện
🔗 1. AND - Phải CẢ HAI đều đúng
age = 16
has_sport_shoes = True
# Cả hai điều kiện phải đúng
can_play_football = age >= 15 and has_sport_shoes
print(f"Có thể chơi bóng: {can_play_football}") # True
# Ví dụ thực tế: Điều kiện thi đại học
math_score = 8.5
physics_score = 7.0
chemistry_score = 8.0
# Phải có điểm trung bình >= 7.5 VÀ không có môn nào dưới 6
average_score = (math_score + physics_score + chemistry_score) / 3
meets_requirement = average_score >= 7.5 and math_score >= 6 and physics_score >= 6 and chemistry_score >= 6
print(f"Đạt điều kiện thi đại học: {meets_requirement}") # True
🌟 2. OR - CHỈ CẦN MỘT điều đúng
has_bicycle = False
has_motorcycle = True
# Chỉ cần một trong hai
can_go_to_school = has_bicycle or has_motorcycle
print(f"Có thể đi học: {can_go_to_school}") # True
# Ví dụ: Được miễn học phí
is_excellent_student = True
is_poor_family = False
is_martyr_child = False
# Chỉ cần một điều kiện đúng là được miễn
gets_tuition_waiver = is_excellent_student or is_poor_family or is_martyr_child
print(f"Được miễn học phí: {gets_tuition_waiver}") # True
❗ 3. NOT - Đảo ngược kết quả
is_raining = True
has_raincoat = False
# Đảo ngược
is_sunny = not is_raining
print(f"Trời nắng: {is_sunny}") # False
# Ví dụ thực tế
need_raincoat = is_raining and not has_raincoat
print(f"Cần mang áo mưa: {need_raincoat}") # True
📋 Bảng Chân Lý - Tham Khảo Nhanh
# AND - Cả hai phải đúng
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
# OR - Chỉ cần một đúng
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False
# NOT - Đảo ngược
print(not True) # False
print(not False) # True
🎪 Ví Dụ Thực Tế: Hệ Thống Chấm Điểm
# 📊 Thông tin học sinh
full_name = "Nguyễn Minh An"
math_score = 8.5
literature_score = 7.5
english_score = 9.0
absent_days = 3
has_discipline_violation = False
# 🧮 Tính toán
average_score = (math_score + literature_score + english_score) / 3
print(f"Điểm trung bình: {average_score:.1f}")
# ✅ Các điều kiện đánh giá
grade_passed = average_score >= 8.0
good_attendance = absent_days <= 5
good_conduct = not has_discipline_violation
print(f"Điểm đạt yêu cầu: {grade_passed}")
print(f"Chuyên cần tốt: {good_attendance}")
print(f"Hạnh kiểm tốt: {good_conduct}")
# 🏆 Xếp loại học sinh
excellent_student = grade_passed and good_attendance and good_conduct
good_student = average_score >= 6.5 and good_attendance and good_conduct
average_student = average_score >= 5.0 and good_conduct
print("\n=== KẾT QUẢ XẾP LOẠI ===")
if excellent_student:
classification = "GIỎI"
elif good_student:
classification = "KHÁ"
elif average_student:
classification = "TRUNG BÌNH"
else:
classification = "YẾU"
print(f"Học sinh {full_name}: {classification}")
🔄 Chuyển Đổi Sang Boolean
Python có thể chuyển đổi nhiều thứ thành Boolean:
# Số 0 = False, số khác 0 = True
print(bool(0)) # False
print(bool(1)) # True
print(bool(-5)) # True
print(bool(3.14)) # True
# Chuỗi rỗng = False, có nội dung = True
print(bool("")) # False
print(bool("Xin chào")) # True
print(bool(" ")) # True (có khoảng trắng)
# None = False
print(bool(None)) # False
# Danh sách rỗng = False, có phần tử = True
print(bool([])) # False
print(bool([1, 2])) # True
🎯 Bài Tập Thực Hành
🥇 Bài Tập 1: Kiểm Tra Điều Kiện Thi
# Thông tin thí sinh
candidate_name = "Trần Thị Lan"
age = 18
graduated_high_school = True
has_birth_certificate = True
submitted_documents = True
# TODO: Kiểm tra điều kiện dự thi đại học
# Điều kiện: Tuổi >= 18 VÀ đã tốt nghiệp THPT VÀ có đầy đủ giấy tờ
eligible_for_exam = (age >= 18) and graduated_high_school and has_birth_certificate and submitted_documents
print(f"Thí sinh {candidate_name}:")
print(f"Đủ điều kiện dự thi: {eligible_for_exam}")
# Phân tích từng điều kiện
print(f"Đủ tuổi (>= 18): {age >= 18}")
print(f"Đã tốt nghiệp THPT: {graduated_high_school}")
print(f"Có đầy đủ giấy tờ: {has_birth_certificate and submitted_documents}")
🥈 Bài Tập 2: Hệ Thống Báo Động Thời Tiết
# Thông tin thời tiết
temperature = 35 # Độ C
humidity = 80 # %
wind_speed = 25 # km/h
is_raining = True
# TODO: Tạo các cảnh báo
heat_warning = temperature > 32
humidity_warning = humidity > 70
strong_wind_warning = wind_speed > 20
storm_warning = is_raining and strong_wind_warning
print("=== BẢN TIN THỜI TIẾT ===")
print(f"Nhiệt độ: {temperature}°C")
print(f"Độ ẩm: {humidity}%")
print(f"Tốc độ gió: {wind_speed} km/h")
print(f"Có mưa: {is_raining}")
print("\n=== CẢNH BÁO ===")
if heat_warning:
print("⚠️ CẢNH BÁO: Thời tiết nóng, hạn chế ra ngoài!")
if humidity_warning:
print("💧 LƯU Ý: Độ ẩm cao, dễ cảm thấy ngột ngạt!")
if strong_wind_warning:
print("💨 CẢNH BÁO: Gió mạnh, chú ý khi di chuyển!")
🥉 Bài Tập 3: Máy Tính Logic
# Tạo máy tính logic đơn giản
print("=== MÁY TÍNH LOGIC ===")
# TODO: Nhập 2 giá trị boolean từ người dùng
print("Nhập giá trị đầu tiên (True/False):")
# value_1 = input().strip() == "True"
print("Nhập giá trị thứ hai (True/False):")
# value_2 = input().strip() == "True"
# Tạm thời dùng giá trị cố định để test
value_1 = True
value_2 = False
print(f"\nGiá trị 1: {value_1}")
print(f"Giá trị 2: {value_2}")
# Tính toán các phép logic
result_and = value_1 and value_2
result_or = value_1 or value_2
result_not_1 = not value_1
result_not_2 = not value_2
print(f"\n=== KẾT QUẢ ===")
print(f"{value_1} AND {value_2} = {result_and}")
print(f"{value_1} OR {value_2} = {result_or}")
print(f"NOT {value_1} = {result_not_1}")
print(f"NOT {value_2} = {result_not_2}")
🎊 Tóm Tắt
Trong bài này, bạn đã học được:
✅ Boolean: Chỉ có 2 giá trị True
và False
✅ Phép so sánh: ==
, !=
, >
, <
, >=
, <=
✅ Phép logic: and
(và), or
(hoặc), not
(không)
✅ Chuyển đổi: Các giá trị khác có thể chuyển thành Boolean
✅ Ứng dụng: Đánh giá điều kiện, ra quyết định
🚀 Bước Tiếp Theo
Bây giờ Python đã biết phân biệt đúng/sai rồi! Tiếp theo, chúng ta sẽ học cách tìm và sửa lỗi khi viết code trong bài Hiểu và Sửa Lỗi Cơ Bản.
Hãy thử tạo một "hệ thống kiểm tra mật khẩu mạnh"! Mật khẩu mạnh phải: có ít nhất 8 ký tự VÀ có chữ hoa VÀ có chữ số VÀ không chứa tên người dùng. Sử dụng Boolean để kiểm tra!
🔗 Bài tiếp theo: Hiểu và Sửa Lỗi Cơ Bản - Khi Python "Không Hiểu" Bạn Nói Gì