Bài 19

Câu lệnh rẽ nhánh if

Biết và trình bày được các phép toán với kiểu dữ liệu logic, sử dụng được lệnh rẽ nhánh if trong lập trình.

🚀

1. Khởi động (Engagement)

Trong cuộc sống, chúng ta vẫn thường gặp các tình huống một việc được thực hiện hay không phụ thuộc vào một điều kiện. Ví dụ, em dự định, nếu ngày mai trời không mưa em sẽ đi chơi cùng bạn, ngược lại nếu trời mưa em sẽ ở nhà làm bài tập.

💡 Câu hỏi suy ngẫm: Em hãy điền thông tin vào vị trí <Điều kiện> và lệnh tương ứng trong sơ đồ cấu trúc rẽ nhánh:

  • Nếu <điều kiện> thì ...
  • Ngược lại thì ...

Các tình huống như vậy trong lập trình được gọi là rẽ nhánh.

📖

2. Hình thành kiến thức (Knowledge)

1. Biểu thức logic

Trong Python, biểu thức logic là biểu thức chỉ nhận giá trị True (đúng) hoặc False (sai). Biểu thức logic đơn giản nhất là các biểu thức so sánh số hoặc xâu kí tự.

Ví dụ về biểu thức logic:

a, b, s = 10, 2, "Number"

a > 10
False

b < 3
True

s == "number"
False
Python Script

a) Các phép so sánh

Các phép so sánh các giá trị số trong Python:

Phép toánÝ nghĩaVí dụ
<Nhỏ hơna < 10
>Lớn hơna > 5
==Bằng nhaua == 10
<=Nhỏ hơn hoặc bằnga <= 10
>=Lớn hơn hoặc bằnga >= 5
!=Khác nhaua != 5

Lưu ý: Với xâu kí tự cũng có đầy đủ các phép so sánh (sẽ học sau).

b) Các phép toán logic

Các phép toán trên kiểu dữ liệu logic bao gồm:

Phép and (và):

XYX and Y
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Phép or (hoặc):

XYX or Y
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Phép not (phủ định):

Xnot X
TrueFalse
FalseTrue

Ví dụ phức hợp:

x, y, z = 10, 5, 9
b = x < 11 and z > 5      # True and True = True
c = x > 15 or y < 9       # False or True = True
a = not b                 # not True = False
Python Script

Kết nối tri thức:

  • Biểu thức logic là biểu thức chỉ nhận giá trị True hoặc False.
  • Giá trị các biểu thức logic thuộc kiểu bool.
  • Các phép toán trên kiểu dữ liệu logic là and (và), or (hoặc) và not (phủ định).

2. Lệnh if

Để xử lí các tình huống rẽ nhánh, giống như các ngôn ngữ lập trình khác, Python cũng có các câu lệnh để mô tả cấu trúc rẽ nhánh.

a) Câu lệnh rẽ nhánh dạng thiếu

Cú pháp:

if `<điều kiện>`:
    `<khối lệnh>`
Python Script

Quy tắc quan trọng:

  • Sau điều kiện cần có dấu hai chấm ":"
  • Nhóm, khối lệnh tiếp theo cần viết lùi vào và thẳng hàng, mặc định là 1 tab hay 4 dấu cách

Ví dụ:

if n > 0:
    print("n là số lớn hơn 0")
Python Script

b) Câu lệnh rẽ nhánh dạng đủ

Cú pháp:

if <điều kiện>:
    <khối lệnh 1>
else:
    <khối lệnh 2>
Python Script

Ví dụ:

if n > 0:
    print("n là số dương")
else:
    print("n không phải là số dương")
Python Script

c) Câu lệnh rẽ nhánh dạng đủ nhiều nhánh

Cú pháp:

if <điều kiện 1>:
    <khối lệnh 1>
elif <điều kiện 2>:
    <khối lệnh 2>
else:
    <khối lệnh 3>
Python Script
🧩

3. Luyện tập (Practice)

Bài tập thực hành

Bài tập 1:

Mỗi biểu thức sau có giá trị True hay False? a) 100%4 == 0 b) 111//5 != 20 or 20%3 != 0

Bài tập 2:

Cho trước số tự nhiên n (được gán hoặc nhập từ bàn phím). Viết đoạn chương trình kiểm tra n > 0 thì thông báo "n là số lớn hơn 0".

Ví dụ giải:

if n > 0:
    print("n là số lớn hơn 0")
Python Script

Bài tập 3:

Viết chương trình nhập vào một số nguyên. Kiểm tra và in ra kết quả:

  • Số đó là số dương, số âm hay số không

Bài tập 4:

Viết chương trình nhập vào điểm của học sinh. Xếp loại học lực theo quy định:

  • Điểm >= 8: Giỏi
  • 6 <= Điểm < 8: Khá
  • 4 <= Điểm < 6: Trung bình
  • Điểm < 4: Yếu

Thực hành tại máy:

Thực hiện các lệnh sau và quan sát kết quả:

x = 10
if x > 5:
    print("x lớn hơn 5")
print("Luôn thực hiện")

y = 3
if y > 5:
    print("Không bao giờ in ra")
print("Luôn thực hiện")
Python Script
🌟

4. Vận dụng (Application)

Bài tập vận dụng

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

Năm n là năm nhuận nếu giá trị n thoả mãn điều kiện: n chia hết cho 400 hoặc n chia hết cho 4 đồng thời không chia hết cho 100.

Viết chương trình nhập số năm n và cho biết năm n có phải là nhuận hay không.

Gợi ý:

if (n % 400 == 0) or (n % 4 == 0 and n % 100 != 0):
    print(n, "là năm nhuận")
else:
    print(n, "không phải là năm nhuận")
Python Script

Bài tập 2: Giải phương trình bậc nhất

Viết chương trình nhập vào các hệ số a, b của phương trình ax + b = 0 (a ≠ 0) và tìm nghiệm của phương trình.

Gợi ý:

  • Nghiệm x = -b/a
  • Cần kiểm tra a != 0 trước khi tính

Bài tập 3: Tính tiền điện

Viết chương trình tính tiền điện theo quy định:

  • Nếu số điện ≤ 100 kWh: đơn giá 1.500 VNĐ/kWh
  • Nếu số điện > 100 kWh: phần ≤ 100 kWh tính 1.500 VNĐ/kWh, phần vượt tính 2.000 VNĐ/kWh

Thảo luận:

  • Tại sao cần kiểm tra điều kiện a != 0 trong bài 2?
  • Lỗi nào thường gặp khi quên dấu hai chấm sau if/else?
  • Tại sao thụt lề lại quan trọng trong Python?

Ghi nhớ kiến thức 🎯

  • ✅ Biểu thức logic chỉ nhận giá trị True hoặc False.
  • ✅ Phép so sánh: ==, !=, <, >, <=, >=
  • ✅ Phép logic: and (và), or (hoặc), not (phủ định)
  • ✅ Cấu trúc if: cần dấu hai chấm ":" và thụt lề đúng.
  • ✅ if-elif-else: dùng cho nhiều điều kiện.

Chúc mừng bạn đã hoàn thành bài học này! 🏆