Bài F5. Lệnh rẽ nhánh

Nội dung lý thuyết

1. Biểu thức logic

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

  • Các phép toán so sánh có hai toán hạng là các giá trị có thể so sánh được.

  • Kết quả của phép toán so sánh là một giá trị logic: True (đúng), False (sai).

  • Bảng 1. Các phép toán so sánh trong Python:

    Toán tửPhép toánVí dụKết quả
    ==So sánh bằng3 == 2False
    !=So sánh khác3 != 2True
    >Lớn hơn3 > 2True
    >=Lớn hơn hoặc bằng3 >= 2True
    <Nhỏ hơn3 < 2False
    <=Nhỏ hơn hoặc bằng3 <= 2False


    Bao gồm: == (so sánh bằng), != (so sánh khác), > (lớn hơn), >= (lớn hơn hoặc bằng), < (nhỏ hơn), <= (nhỏ hơn hoặc bằng).

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

  • Toán hạng của các phép toán logic có giá trị True hoặc False.

  • Kết quả của phép toán logic là True hoặc False.

  • Bảng 2. Các phép toán logic trong Python:

    Phép toánVí dụ
    notnot a
    anda and b
    ora or b


    Bao gồm: not, and, or.

  • Bảng 3. Bảng chân lí của phép not:

    anot a
    TrueFalse
    FalseTrue
  • Bảng 4. Bảng chân lí của phép and và or:

    aba and ba or b
    TrueTrueTrueTrue
    TrueFalseFalseTrue
    FalseTrueFalseTrue
    FalseFalseFalseFalse

Lưu ý:

  • Phép and cho kết quả là True nếu cả hai toán hạng đều True.

  • Phép or cho kết quả là False nếu cả hai toán hạng đều False.

c) Biểu thức logic

  • Biểu thức logic có thể là một hằng, một biến, một hàm hoặc là sự kết hợp của các hằng, biến, hàm với các toán tử, theo thứ tự ưu tiên.

  • Thứ tự ưu tiên của các toán tử trong Python được liệt kê trong Bảng 5:

    Toán tửMô tả
    **Lũy thừa
    * / // %Nhân, chia, chia lấy phần nguyên, chia lấy phần dư
    + -Cộng, trừ
    == != > >= < <=Các phép toán so sánh
    notPhép not
    andPhép and
    orPhép or

2. Cấu trúc tuần tự

  • Cấu trúc tuần tự bao gồm một dãy các lệnh liên tiếp nhau: <lệnh 1>, <lệnh 2>, ..., <lệnh N>.

  • Các lệnh được thực hiện một cách tuần tự, từ <lệnh 1> đến <lệnh N>.

  • Hình 2. Sơ đồ khối của cấu trúc tuần tự:

    Sơ đồ khối cấu trúc tuần tự

3. Cấu trúc điều kiện

Cấu trúc điều kiện (còn gọi là cấu trúc rẽ nhánh) cho phép chương trình thực hiện một hay nhiều lệnh dựa vào điều kiện cụ thể.
Điều kiện trong Python là các biểu thức logic có giá trị True hoặc False.
Python sử dụng các lệnh if, if - else, và if - elif - else để xử lý điều kiện.

a) Lệnh if

  • Cú pháp: 

if <điều kiện>:
    <khối lệnh>
  • <điều kiện> là một biểu thức logic.

  • <khối lệnh> gồm một hoặc nhiều lệnh được thực thi nếu điều kiện là đúng.

  • Sơ đồ khối: (chèn Hình 3)
    Điều kiện đúng → thực hiện khối lệnh.
    Điều kiện sai → bỏ qua.

Sơ đồ khối lệnh if

Ví dụ 1. Một cửa hàng tạp hóa đang có chiến dịch tri ân khách hàng. Với mỗi khách hàng có hóa đơn trên 10 triệu đồng thi sẽ được chiết khấu 10% tổng số tiền phải trả. Chương trình được viết như sau:

tienMua = int(input("Nhập tiền mua hàng: "))
tienChietKhau = 0
if tienMua >= 1000000:
    tienChietKhau = int(tienMua * 0.1)
print(f"Tiền chiết khấu: {tienChietKhau}")

b) Lệnh if - else

  • Cú pháp:

if <điều kiện>:
    <khối lệnh 1>
else:
    <khối lệnh 2>
    • Nếu <điều kiện> đúng: thực hiện <khối lệnh 1>

    • Nếu <điều kiện> sai: thực hiện <khối lệnh 2>

  • Sơ đồ khối: (chèn Hình 4)
    Điều kiện đúng → thực hiện khối lệnh 1
    Điều kiện sai → thực hiện khối lệnh 2

Sơ đồ khối của lệnh if-else

Ví dụ 2. Nhập số nguyên a. Nếu a là số chẵn thì hiển thị a là số chẵn, ngược lại hiển thị a là số lẻ.

a = int(input("Nhập a: "))
if a % 2 == 0:
    print("a là số chẵn.")
else:
    print("a là số lẻ.")
  • Cú pháp rút gọn gán giá trị theo điều kiện: <tên biến> = <biểu thức 1> if <điều kiện> else <biểu thức 2>

c) Lệnh if - elif - else

  • 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>
...
elif <điều kiện N>:
    <khối lệnh N>
else:
    <khối lệnh>
  • Dùng khi cần kiểm tra nhiều điều kiện khác nhau.

  • Chỉ một trong các khối lệnh được thực hiện – theo thứ tự điều kiện đúng đầu tiên.

  • Sơ đồ khối: (chèn Hình 5)
    Kiểm tra từng điều kiện cho đến khi gặp điều kiện đúng.

Sơ đồ khối của lệnh if-elif-else

Ví dụ 3. Nhập số a. Nếu a < 100 thì hiển thị "Nhỏ hơn 100". Nếu 100 <= a < 200 thì hiện thị "Lớn hơn hoặc bằng 100 và nhỏ hơn 200.". Ngược lại, hiển thị "Lớn hơn hoặc bằng 200".

a = int(input("Nhập a: "))
if a < 100:
    print("Nhỏ hơn 100.")
elif a < 200:
    print("Lớn hơn hoặc bằng 100 và nhỏ hơn 200.")
else:
    print("Lớn hơn hoặc bằng 200.")