Bỏ qua

Image

CẤU TRÚC RẼ NHÁNH - IF, ELSE TRONG PYTHON

I. Định nghĩa và đặc điểm

1. Cấu trúc rẽ nhánh là gì?

Cấu trúc rẽ nhánh cho phép chương trình thực hiện các khối lệnh khác nhau dựa trên điều kiện đúng hoặc sai.

# Ví dụ đơn giản
diem = 8.5
if diem >= 8.0:
    print("Học sinh giỏi")
else:
    print("Cần cố gắng thêm")

2. Đặc điểm của cấu trúc rẽ nhánh

  • Kiểm tra điều kiện đúng/sai
  • Thực hiện khối lệnh tương ứng
  • Có thể lồng nhau nhiều tầng
  • Luôn có ít nhất một khối lệnh được thực hiện

II. Các toán tử so sánh

1. Toán tử so sánh cơ bản

# So sánh bằng
a = 5
b = 5
print(a == b)  # True

# So sánh khác
print(a != b)  # False

# So sánh lớn hơn, nhỏ hơn
print(a > 3)   # True
print(a < 10)  # True

# So sánh lớn hơn hoặc bằng, nhỏ hơn hoặc bằng
print(a >= 5)  # True
print(a <= 5)  # True

2. So sánh chuỗi

ten1 = "An"
ten2 = "Bình"
print(ten1 < ten2)  # True (so sánh theo thứ tự bảng chữ cái)

# So sánh độ dài chuỗi
print(len(ten1) == len(ten2))  # False

3. So sánh với nhiều điều kiện

tuoi = 15
diem = 8.5

# Kiểm tra nhiều điều kiện
if tuoi >= 15 and diem >= 8.0:
    print("Đủ điều kiện tham gia đội tuyển")
else:
    print("Chưa đủ điều kiện")

III. Cấu trúc if cơ bản

1. Cấu trúc if đơn giản

# Cú pháp cơ bản
if dieu_kien:
    # Khối lệnh thực hiện khi điều kiện đúng
    pass

# Ví dụ
diem = float(input("Nhập điểm: "))
if diem >= 8.0:
    print("Học sinh giỏi!")

2. Cấu trúc if-else

# Cú pháp if-else
if dieu_kien:
    # Khối lệnh khi điều kiện đúng
    pass
else:
    # Khối lệnh khi điều kiện sai
    pass

# Ví dụ
diem = float(input("Nhập điểm: "))
if diem >= 5.0:
    print("Đạt")
else:
    print("Không đạt")

3. Cấu trúc if-elif-else

# Cú pháp if-elif-else
if dieu_kien1:
    # Khối lệnh 1
    pass
elif dieu_kien2:
    # Khối lệnh 2
    pass
elif dieu_kien3:
    # Khối lệnh 3
    pass
else:
    # Khối lệnh mặc định
    pass

# Ví dụ xếp loại học sinh
diem = float(input("Nhập điểm: "))
if diem >= 9.0:
    print("Xuất sắc")
elif diem >= 8.0:
    print("Giỏi")
elif diem >= 6.5:
    print("Khá")
elif diem >= 5.0:
    print("Trung bình")
else:
    print("Yếu")

IV. Toán tử logic

1. Toán tử AND (và)

# Cả hai điều kiện phải đúng
tuoi = 15
diem = 8.5
if tuoi >= 15 and diem >= 8.0:
    print("Đủ điều kiện tham gia đội tuyển")
else:
    print("Chưa đủ điều kiện")

2. Toán tử OR (hoặc)

# Chỉ cần một trong hai điều kiện đúng
mon_toan = 8.5
mon_van = 7.0
if mon_toan >= 8.0 or mon_van >= 8.0:
    print("Có ít nhất một môn đạt điểm giỏi")
else:
    print("Chưa có môn nào đạt điểm giỏi")

3. Toán tử NOT (không)

# Phủ định điều kiện
diem = 6.0
if not (diem >= 8.0):
    print("Chưa đạt học sinh giỏi")
else:
    print("Đạt học sinh giỏi")

4. Kết hợp nhiều toán tử logic

tuoi = 16
diem = 8.5
co_ho_khau = True

if (tuoi >= 15 and diem >= 8.0) or (co_ho_khau and diem >= 9.0):
    print("Đủ điều kiện nhận học bổng")
else:
    print("Chưa đủ điều kiện")

V. Cấu trúc if lồng nhau

1. If lồng nhau cơ bản

diem = float(input("Nhập điểm: "))
if diem >= 5.0:
    if diem >= 8.0:
        print("Học sinh giỏi")
    else:
        print("Học sinh trung bình")
else:
    print("Học sinh yếu")

2. If lồng nhau phức tạp

tuoi = int(input("Nhập tuổi: "))
diem = float(input("Nhập điểm: "))

if tuoi >= 15:
    if diem >= 8.0:
        if tuoi <= 18:
            print("Đủ điều kiện tham gia đội tuyển trẻ")
        else:
            print("Đủ điều kiện tham gia đội tuyển chính")
    else:
        print("Điểm chưa đủ")
else:
    print("Tuổi chưa đủ")

VI. Ví dụ minh họa

Ví dụ 1: Kiểm tra số chẵn lẻ

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

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

# Kiểm tra thêm tính chất khác
if so > 0:
    print("Số dương")
elif so < 0:
    print("Số âm")
else:
    print("Số không")

Ví dụ 2: Tính điểm trung bình và xếp loại

# Nhập điểm các môn
toan = float(input("Nhập điểm Toán: "))
van = float(input("Nhập điểm Văn: "))
anh = float(input("Nhập điểm Anh: "))

# Tính điểm trung bình
diem_tb = (toan + van + anh) / 3

print(f"Điểm trung bình: {diem_tb:.2f}")

# Xếp loại
if diem_tb >= 9.0:
    print("Xếp loại: Xuất sắc")
elif diem_tb >= 8.0:
    print("Xếp loại: Giỏi")
elif diem_tb >= 6.5:
    print("Xếp loại: Khá")
elif diem_tb >= 5.0:
    print("Xếp loại: Trung bình")
else:
    print("Xếp loại: Yếu")

# Kiểm tra điều kiện đặc biệt
if toan >= 8.0 and van >= 8.0 and anh >= 8.0:
    print("🎉 Chúc mừng! Tất cả môn đều đạt điểm giỏi!")

Ví dụ 3: Kiểm tra năm nhuận

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

# Kiểm tra năm nhuận
if (nam % 4 == 0 and nam % 100 != 0) or (nam % 400 == 0):
    print(f"{nam} là năm nhuận")
    print("Tháng 2 có 29 ngày")
else:
    print(f"{nam} không phải năm nhuận")
    print("Tháng 2 có 28 ngày")

# Kiểm tra thế kỷ
if nam >= 2000:
    print("Thuộc thế kỷ 21")
else:
    print("Thuộc thế kỷ 20")

Ví dụ 4: Máy tính đơn giản

print("MÁY TÍNH ĐƠN GIẢN")
print("1. Cộng")
print("2. Trừ")
print("3. Nhân")
print("4. Chia")

lua_chon = input("Chọn phép tính (1-4): ")
so1 = float(input("Nhập số thứ nhất: "))
so2 = float(input("Nhập số thứ hai: "))

if lua_chon == "1":
    ket_qua = so1 + so2
    print(f"{so1} + {so2} = {ket_qua}")
elif lua_chon == "2":
    ket_qua = so1 - so2
    print(f"{so1} - {so2} = {ket_qua}")
elif lua_chon == "3":
    ket_qua = so1 * so2
    print(f"{so1} × {so2} = {ket_qua}")
elif lua_chon == "4":
    if so2 != 0:
        ket_qua = so1 / so2
        print(f"{so1} ÷ {so2} = {ket_qua}")
    else:
        print("❌ Lỗi: Không thể chia cho 0!")
else:
    print("❌ Lựa chọn không hợp lệ!")

VII. Bài tập thực hành tại lớp

Bài 1: Kiểm tra số nguyên

Đề bài: Viết chương trình kiểm tra số nguyên dương, âm hay bằng 0.

💡 Phân tích đề

Các bước thực hiện:

  1. Nhập số nguyên từ bàn phím
  2. Sử dụng if-elif-else để kiểm tra
  3. Điều kiện: > 0 (dương), < 0 (âm), == 0 (bằng không)
  4. In kết quả tương ứng

Input/Output mẫu:

Input Điều kiện Output
5 > 0 Số dương
-3 < 0 Số âm
0 == 0 Số không
💡 Gợi ý code
# Nhập số từ bàn phím
so = int(input("Nhập một số: "))

# Kiểm tra và phân loại
if so > 0:
    print("Số dương")
elif so < 0:
    print("Số âm")
else:
    print("Số không")

Bài 2: Xếp loại học lực

Đề bài: Viết chương trình kiểm tra điểm và đưa ra nhận xét.

💡 Phân tích đề

Các bước thực hiện:

  1. Nhập điểm từ bàn phím (float)
  2. Sử dụng if-elif-else theo thứ tự giảm dần
  3. Thang điểm: ≥9.0 (Xuất sắc), ≥8.0 (Giỏi), ≥6.5 (Khá), ≥5.0 (TB)
  4. In nhận xét tương ứng

Input/Output mẫu:

Điểm Phân loại Nhận xét
9.2 ≥ 9.0 Xuất sắc!
7.8 ≥ 6.5 Khá!
4.5 < 5.0 Cần cố gắng!
💡 Gợi ý code
# Nhập điểm từ bàn phím
diem = float(input("Nhập điểm: "))

# Phân loại học lực
if diem >= 9.0:
    print("Xuất sắc!")
elif diem >= 8.0:
    print("Giỏi!")
elif diem >= 6.5:
    print("Khá!")
elif diem >= 5.0:
    print("Trung bình")
else:
    print("Cần cố gắng!")

Bài 3: Phân loại độ tuổi

Đề bài: Viết chương trình kiểm tra tuổi và đưa ra phân loại.

💡 Phân tích đề

Các bước thực hiện:

  1. Nhập tuổi từ bàn phím (int)
  2. Phân loại theo các khoảng tuổi
  3. < 13 (Thiếu niên), < 18 (Thanh niên), < 60 (Trung niên), ≥ 60 (Cao niên)
  4. In phân loại tương ứng

Input/Output mẫu:

Tuổi Phân loại Kết quả
10 < 13 Thiếu niên
16 < 18 Thanh niên
65 ≥ 60 Cao niên
💡 Gợi ý code
# Nhập tuổi từ bàn phím
tuoi = int(input("Nhập tuổi: "))

# Phân loại theo độ tuổi
if tuoi < 13:
    print("Thiếu niên")
elif tuoi < 18:
    print("Thanh niên")
elif tuoi < 60:
    print("Trung niên")
else:
    print("Cao niên")

VIII. Bài tập về nhà

Bài 1: Kiểm tra tam giác

Đề bài: Viết chương trình kiểm tra tam giác (đều, cân, vuông, thường).

💡 Phân tích đề

Các bước thực hiện:

  1. Nhập 3 cạnh của tam giác
  2. Kiểm tra điều kiện tồn tại tam giác: a+b > c, b+c > a, a+c > b
  3. Kiểm tra tam giác vuông: a² + b² = c² (hoặc hoán vị)
  4. Kiểm tra tam giác đều: a = b = c
  5. Kiểm tra tam giác cân: a = b hoặc b = c hoặc a = c
  6. Các trường hợp còn lại là tam giác thường

Input/Output mẫu:

Cạnh a Cạnh b Cạnh c Loại tam giác
3 4 5 Tam giác vuông
5 5 5 Tam giác đều
5 5 7 Tam giác cân

Bài 2: Tính thuế thu nhập

Đề bài: Viết chương trình tính thuế thu nhập dựa trên mức lương.

💡 Phân tích đề

Các bước thực hiện:

  1. Nhập mức lương từ bàn phím
  2. Áp dụng bậc thuế lũy tiến:
  3. ≤ 5 triệu: 5%
  4. 5-10 triệu: 10%
  5. 10-18 triệu: 15%
  6. 18 triệu: 20%

  7. Tính thuế phải nộp
  8. Tính lương thực nhận = lương - thuế

Input/Output mẫu:

Lương Bậc thuế Thuế Thực nhận
8,000,000 10% 800,000 7,200,000

Bài 3: Kiểm tra mật khẩu

Đề bài: Viết chương trình kiểm tra mật khẩu và đưa ra đánh giá độ mạnh.

💡 Phân tích đề

Các bước thực hiện:

  1. Nhập mật khẩu từ bàn phím
  2. Kiểm tra các tiêu chí:
  3. Độ dài ≥ 8 ký tự
  4. Có chữ hoa, chữ thường
  5. Có số và ký tự đặc biệt
  6. Đánh giá độ mạnh: Yếu, Trung bình, Mạnh
  7. Đưa ra gợi ý cải thiện nếu cần

Input/Output mẫu:

Mật khẩu Tiêu chí Đánh giá
Abc123@# Đủ 4 tiêu chí Mật khẩu mạnh
abc123 Thiếu chữ hoa, ký tự đặc biệt Mật khẩu yếu

Bài 4: Tính tiền điện bậc thang

Đề bài: Viết chương trình tính tiền điện theo bậc thang.

💡 Phân tích đề

Các bước thực hiện:

  1. Nhập số kWh điện sử dụng
  2. Áp dụng bậc giá:
  3. Bậc 1 (0-50 kWh): 1,678đ/kWh
  4. Bậc 2 (51-100 kWh): 1,734đ/kWh
  5. Bậc 3 (101-200 kWh): 2,014đ/kWh
  6. Bậc 4 (201-300 kWh): 2,536đ/kWh
  7. Bậc 5 (>300 kWh): 2,834đ/kWh
  8. Tính tiền theo từng bậc
  9. Cộng tổng tiền phải trả

Input/Output mẫu:

Điện tiêu thụ Bậc áp dụng Tổng tiền
120 kWh Bậc 1,2,3 214,700đ

IX. Ghi chú quan trọng

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

  • Sử dụng : sau điều kiện
  • Thụt lề (indent) cho khối lệnh
  • Có thể lồng nhiều tầng if

2. Thứ tự ưu tiên toán tử

  1. () - Dấu ngoặc
  2. not - Phủ định
  3. and - Và
  4. or - Hoặc

3. Lưu ý khi sử dụng

  • Kiểm tra điều kiện từ đơn giản đến phức tạp
  • Sử dụng elif thay vì nhiều if riêng biệt
  • Tránh lồng quá nhiều tầng if

4. Các lỗi thường gặp

  • Quên dấu : sau điều kiện
  • Sai thụt lề
  • So sánh chuỗi với số
  • Quên kiểm tra điều kiện chia cho 0