Skip to content

✔️ 5.1 if cơ bản

📖 Giới thiệu

Câu lệnh if là nền tảng của lập trình - nó giúp chương trình "quyết định" dựa trên điều kiện. Đây là bước đầu tiên để tạo ra những chương trình thông minh và tương tác.

Mục tiêu bài học:

  • Hiểu cách hoạt động của câu lệnh if
  • Biết cách viết điều kiện đúng cách
  • Sử dụng if để tạo chương trình có logic
  • Hiểu về indentation (thụt lề) trong Python

🔧 Cú pháp

Cú pháp cơ bản:

python
if dieu_kien:
    # Code được thực thi khi điều kiện đúng
    lenh_1
    lenh_2
    ...

Cú pháp chi tiết:

python
if dieu_kien_boolean:
    # Khối lệnh này chạy khi điều kiện True
    print("Điều kiện đúng!")
    # Có thể có nhiều lệnh
    # Tất cả phải thụt lề như nhau

Các toán tử so sánh:

python
# Toán tử so sánh cơ bản
a == b    # Bằng
a != b    # Khác
a > b     # Lớn hơn
a < b     # Nhỏ hơn
a >= b    # Lớn hơn hoặc bằng
a <= b    # Nhỏ hơn hoặc bằng

🔬 Phân tích & Giải thích chi tiết

1. 🎯 if hoạt động như thế nào?

Quy trình thực thi:

  1. Python đánh giá điều kiện sau if
  2. Nếu kết quả là True → chạy code trong khối if
  3. Nếu kết quả là False → bỏ qua khối if
  4. Tiếp tục chạy code sau khối if
python
tuoi = 18

if tuoi >= 18:                    # Kiểm tra: 18 >= 18 → True
    print("Bạn đã đủ tuổi!")     # Code này được chạy
    print("Chào mừng!")          # Code này cũng được chạy

print("Chương trình kết thúc")   # Code này luôn được chạy

2. 📏 Thụt lề (Indentation) - Rất quan trọng!

Quy tắc thụt lề:

  • Sử dụng 4 spaces (khuyến nghị)
  • Hoặc 1 tab (nhưng không trộn lẫn)
  • Tất cả code trong cùng một khối phải thụt lề như nhau
python
# ✅ Đúng
if True:
    print("Dòng 1")    # 4 spaces
    print("Dòng 2")    # 4 spaces
    print("Dòng 3")    # 4 spaces

# ❌ Sai - IndentationError
if True:
print("Lỗi!")         # Thiếu thụt lề

# ❌ Sai - IndentationError  
if True:
    print("Dòng 1")    # 4 spaces
      print("Dòng 2")  # 6 spaces - không nhất quán

3. 🔍 Các loại điều kiện

So sánh số:

python
diem = 8.5

if diem >= 8.0:
    print("Học sinh giỏi")

if diem == 10.0:
    print("Học sinh xuất sắc")

if diem < 5.0:
    print("Cần cố gắng hơn")

So sánh chuỗi:

python
ten = "Python"

if ten == "Python":
    print("Đây là Python!")

if len(ten) > 5:
    print("Tên dài hơn 5 ký tự")

# So sánh không phân biệt hoa thường
if ten.lower() == "python":
    print("Python (không phân biệt hoa thường)")

Kiểm tra kiểu boolean:

python
la_hoc_sinh = True
co_bang_lai = False

if la_hoc_sinh:
    print("Là học sinh")

if not co_bang_lai:
    print("Chưa có bằng lái")

4. 🎪 Một số trường hợp đặc biệt

Truthiness - Giá trị "đúng"/"sai":

python
# Những giá trị được coi là False
if 0:           # False
    print("Không chạy")

if "":          # False (chuỗi rỗng)
    print("Không chạy")

if []:          # False (list rỗng)
    print("Không chạy")

# Những giá trị được coi là True
if 1:           # True
    print("Chạy")

if "Hello":     # True (chuỗi không rỗng)
    print("Chạy")

if [1, 2, 3]:   # True (list không rỗng)
    print("Chạy")

Toán tử in - kiểm tra phần tử:

python
mon_hoc = ["Toán", "Lý", "Hóa"]

if "Toán" in mon_hoc:
    print("Có môn Toán")

ten = "Python Programming"
if "Python" in ten:
    print("Chuỗi chứa 'Python'")

💻 Ví dụ minh họa

Ví dụ 1: Kiểm tra điểm số học sinh

python
# Chương trình kiểm tra điểm số và đưa ra nhận xét
print("=== CHƯƠNG TRÌNH ĐÁNH GIÁ ĐIỂM SỐ ===\n")

# Nhập điểm
ten_hoc_sinh = input("Tên học sinh: ")
mon_hoc = input("Môn học: ")
diem = float(input("Điểm số (0-10): "))

print(f"\n--- KẾT QUẢ ĐÁNH GIÁ ---")
print(f"Học sinh: {ten_hoc_sinh}")
print(f"Môn học: {mon_hoc}")
print(f"Điểm số: {diem}")

# Đánh giá từng mức điểm
if diem == 10.0:
    print("🏆 XUẤT SẮC! Điểm tuyệt đối!")
    print("💡 Bạn đã hoàn thành xuất sắc môn này!")

if diem >= 9.0:
    print("⭐ GIỎI! Điểm số rất cao!")
    print("💪 Tiếp tục duy trì phong độ!")

if diem >= 8.0:
    print("✨ KHÁ! Điểm số tốt!")
    print("📈 Cố gắng thêm để đạt mức giỏi!")

if diem >= 6.5:
    print("📚 TRUNG BÌNH KHÁ!")
    print("🎯 Cần ôn tập thêm để cải thiện!")

if diem >= 5.0:
    print("⚠️ TRUNG BÌNH!")
    print("📖 Cần học tập chăm chỉ hơn!")

if diem < 5.0:
    print("😟 CẦN CỐ GẮNG!")
    print("🔥 Đừng nản lòng, hãy cố gắng hơn nữa!")

# Khuyến khích
if diem >= 8.0:
    print("\n🎉 Chúc mừng! Bạn đã học rất tốt!")

if diem < 8.0:
    print("\n💪 Đừng lo lắng! Mọi người đều có thể tiến bộ!")

Ví dụ 2: Kiểm tra tuổi và quyền lợi

python
# Chương trình kiểm tra độ tuổi và các quyền lợi
print("=== KIỂM TRA QUYỀN LỢI THEO ĐỘ TUỔI ===\n")

ten = input("Tên của bạn: ")
tuoi = int(input("Tuổi của bạn: "))

print(f"\nXin chào {ten}! Bạn {tuoi} tuổi.")
print("Dưới đây là các quyền lợi của bạn:\n")

# Kiểm tra từng quyền lợi
if tuoi >= 0:
    print("👶 Quyền được chăm sóc và bảo vệ")

if tuoi >= 6:
    print("🎒 Quyền được đi học tiểu học")
    print("🎨 Quyền tham gia các hoạt động trẻ em")

if tuoi >= 11:
    print("📚 Quyền được học trung học cơ sở")

if tuoi >= 15:
    print("🆔 Quyền được cấp chứng minh nhân dân")
    print("💼 Quyền được làm một số công việc phù hợp")

if tuoi >= 16:
    print("🏍️ Quyền được học lái xe gắn máy")

if tuoi >= 18:
    print("🗳️ Quyền bầu cử và ứng cử")
    print("🍺 Quyền sử dụng rượu bia (có trách nhiệm)")
    print("💑 Quyền kết hôn")
    print("🚗 Quyền học lái xe ô tô")

if tuoi >= 21:
    print("🎰 Quyền vào casino (ở một số nước)")

if tuoi >= 60:
    print("👴 Quyền nghỉ hưu và nhận lương hưu")
    print("🚌 Ưu tiên trên phương tiện công cộng")

if tuoi >= 100:
    print("🎊 WOW! Bạn là người sống thọ!")
    print("📰 Có thể được báo chí phỏng vấn!")

# Lời khuyên theo độ tuổi
if tuoi < 18:
    print(f"\n💡 Lời khuyên: Hãy tập trung học tập và phát triển bản thân!")

if tuoi >= 18:
    print(f"\n💡 Lời khuyên: Hãy sống có trách nhiệm và theo đuổi ước mơ!")

if tuoi >= 60:
    print(f"\n💡 Lời khuyên: Hãy tận hưởng cuộc sống và chia sẻ kinh nghiệm!")

Ví dụ 3: Hệ thống đăng nhập đơn giản

python
# Chương trình đăng nhập cơ bản
print("=== HỆ THỐNG ĐĂNG NHẬP ===\n")

# Tài khoản mẫu (trong thực tế sẽ lưu trong database)
username_dung = "admin"
password_dung = "python123"
ho_ten_admin = "Nguyễn Văn Admin"

# Nhập thông tin đăng nhập
username = input("Tên đăng nhập: ")
password = input("Mật khẩu: ")

print("\n--- KIỂM TRA ĐĂNG NHẬP ---")

# Kiểm tra username
if username == username_dung:
    print("✅ Tên đăng nhập hợp lệ")
    
    # Kiểm tra password (chỉ khi username đúng)
    if password == password_dung:
        print("✅ Mật khẩu chính xác")
        print(f"🎉 Đăng nhập thành công!")
        print(f"Chào mừng {ho_ten_admin}!")
        
        # Hiển thị menu sau khi đăng nhập thành công
        print("\n=== MENU CHÍNH ===")
        print("1. Xem thông tin cá nhân")
        print("2. Quản lý người dùng")
        print("3. Cài đặt hệ thống")
        print("4. Đăng xuất")
        
    if password != password_dung:
        print("❌ Mật khẩu sai!")
        print("💡 Gợi ý: Kiểm tra lại mật khẩu")

if username != username_dung:
    print("❌ Tên đăng nhập không tồn tại!")
    print("💡 Gợi ý: Kiểm tra lại tên đăng nhập")

# Lời khuyên bảo mật
if username == username_dung or password == password_dung:
    print("\n🔐 LƯU Ý BẢO MẬT:")
    print("- Không chia sẻ mật khẩu với ai")
    print("- Sử dụng mật khẩu mạnh")
    print("- Thay đổi mật khẩu định kỳ")

🏋️ Thực hành

Bài tập 1: Kiểm tra số chẵn lẻ

Viết chương trình kiểm tra số chẵn hay lẻ:

python
# TODO: Nhập một số nguyên
# TODO: Kiểm tra và in ra số đó là chẵn hay lẻ
# Gợi ý: Sử dụng phép chia lấy dư (%)

Đáp án:

python
so = int(input("Nhập một số nguyên: "))

if so % 2 == 0:
    print(f"{so} là số chẵn")

if so % 2 != 0:
    print(f"{so} là số lẻ")

Bài tập 2: Kiểm tra năm nhuận

Viết chương trình kiểm tra năm nhuận:

python
# TODO: Nhập năm
# TODO: Kiểm tra năm nhuận
# Quy tắc: Năm chia hết cho 4 và (không chia hết cho 100 hoặc chia hết cho 400)

Đáp án:

python
nam = int(input("Nhập năm: "))

if nam % 4 == 0:
    if nam % 100 != 0:
        print(f"{nam} là năm nhuận")
    if nam % 400 == 0:
        print(f"{nam} là năm nhuận")

if nam % 4 != 0:
    print(f"{nam} không phải năm nhuận")

Bài tập 3: Phân loại BMI

Viết chương trình tính và phân loại BMI:

python
# TODO: Nhập cân nặng và chiều cao
# TODO: Tính BMI = cân nặng / (chiều cao)²
# TODO: Phân loại theo BMI
# BMI < 18.5: Thiếu cân
# BMI >= 18.5: Bình thường  
# BMI >= 25: Thừa cân
# BMI >= 30: Béo phì

Đáp án:

python
can_nang = float(input("Cân nặng (kg): "))
chieu_cao = float(input("Chiều cao (m): "))

bmi = can_nang / (chieu_cao ** 2)
print(f"BMI của bạn: {bmi:.1f}")

if bmi < 18.5:
    print("Phân loại: Thiếu cân")

if bmi >= 18.5:
    print("Phân loại: Bình thường")

if bmi >= 25:
    print("Phân loại: Thừa cân")

if bmi >= 30:
    print("Phân loại: Béo phì")

Bài tập 4: Kiểm tra ký tự

Viết chương trình kiểm tra loại ký tự:

python
# TODO: Nhập một ký tự
# TODO: Kiểm tra ký tự đó là:
# - Chữ số (0-9)
# - Chữ cái thường (a-z)  
# - Chữ cái hoa (A-Z)
# - Ký tự đặc biệt

Đáp án:

python
ky_tu = input("Nhập một ký tự: ")

if ky_tu.isdigit():
    print("Đây là chữ số")

if ky_tu.islower():
    print("Đây là chữ cái thường")

if ky_tu.isupper():
    print("Đây là chữ cái hoa")

if not ky_tu.isalnum():
    print("Đây là ký tự đặc biệt")

📋 Tóm tắt

Những điều quan trọng về if:

  1. 🎯 Cú pháp cơ bản:

    python
    if dieu_kien:
        # Code thực thi khi điều kiện True
  2. 📏 Thụt lề bắt buộc:

    • Sử dụng 4 spaces hoặc 1 tab
    • Nhất quán trong toàn bộ khối code
    • Python báo lỗi nếu thụt lề sai
  3. 🔍 Toán tử so sánh:

    python
    ==  !=  >  <  >=  <=    # So sánh cơ bản
    in  not in              # Kiểm tra phần tử
    is  is not             # So sánh identity
  4. 💡 Truthiness:

    • False: 0, "", [], {}, None, False
    • True: Tất cả giá trị khác
  5. 🎪 Patterns thường dùng:

    python
    # Kiểm tra điều kiện đơn giản
    if tuoi >= 18:
        print("Đủ tuổi")
    
    # Kiểm tra nhiều điều kiện
    if diem >= 8.0:
        print("Giỏi")
    if diem >= 6.5:
        print("Khá") 
    
    # Kiểm tra truthiness
    if danh_sach:        # Kiểm tra list không rỗng
        print("Có dữ liệu")

Lưu ý quan trọng:

  • Mỗi if là một điều kiện độc lập
  • Tất cả if đều được kiểm tra
  • Sử dụng thụt lề đúng cách
  • Điều kiện phải trả về boolean

Chuẩn bị cho bài tiếp theo:

Bài tiếp theo sẽ học về 🔁 if – else - cách xử lý khi điều kiện không thỏa mãn và tạo ra logic hoàn chỉnh hơn!


💡 Mẹo: Hãy thói quen thụt lề đúng cách từ bây giờ. Điều này sẽ giúp bạn tránh được rất nhiều lỗi trong tương lai!

🎯 Thực hành: Hãy viết nhiều điều kiện if để làm quen với cú pháp và logic!

🐍 Khóa học Python căn bản bằng tiếng Việt