Tài liệu

Cấu trúc rẽ nhánh trong Python

Huy Erick

Trong lập trình Python, cấu trúc rẽ nhánh là một phần quan trọng và thường xuyên được sử dụng trong các chương trình. Trong bài viết này, chúng ta sẽ tìm hiểu về các cấu...

Trong lập trình Python, cấu trúc rẽ nhánh là một phần quan trọng và thường xuyên được sử dụng trong các chương trình. Trong bài viết này, chúng ta sẽ tìm hiểu về các cấu trúc rẽ nhánh trong Python và cách sử dụng chúng.

Giới thiệu

Đầu tiên, hãy cùng khám phá về khái niệm cấu trúc rẽ nhánh trong lập trình. Trong cuộc sống hàng ngày, chúng ta thường phải đưa ra quyết định và lựa chọn dựa trên các điều kiện khác nhau. Tương tự như vậy, trong lập trình, chúng ta cũng cần có cách để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau.

Cấu trúc rẽ nhánh trong Python cho phép chúng ta thực hiện điều này. Với các câu lệnh rẽ nhánh, ta có thể kiểm tra một điều kiện nào đó và thực hiện các hành động phù hợp dựa trên kết quả của điều kiện đó.

Các cấu trúc rẽ nhánh trong Python

Trong Python, chúng ta có các cấu trúc rẽ nhánh sau đây:

If

Cấu trúc if là cấu trúc rẽ nhánh cơ bản nhất trong Python. Nó có cấu trúc như sau:

if điều_kiện:
    # Thực hiện các câu lệnh trong if-block

Ở đây, nếu điều_kiện là một giá trị khi đưa về kiểu dữ liệu Boolean là True, thì các câu lệnh trong if-block sẽ được thực hiện. Ngược lại, nếu điều_kiện là False, các câu lệnh trong if-block sẽ bị bỏ qua.

Ví dụ:

a = 3
if a - 1  0:
    print('a nhỏ hơn 1')

If - else

Cấu trúc if-else cho phép thực hiện các hành động khác nhau dựa trên kết quả của một điều kiện. Nó có cấu trúc như sau:

if điều_kiện:
    # Thực hiện các câu lệnh trong if-block
else:
    # Thực hiện các câu lệnh trong else-block

Nếu điều_kiện là True, các câu lệnh trong if-block sẽ được thực hiện. Ngược lại, nếu điều_kiện là False, các câu lệnh trong else-block sẽ được thực hiện.

Ví dụ:

a = 0
if a - 1  0:
    print('a nhỏ hơn 1')
else:
    print('a lớn hơn hoặc bằng 1')

If - elif - else

Cấu trúc if-elif-else cho phép kiểm tra nhiều điều kiện khác nhau và thực hiện các hành động tương ứng. Nó có cấu trúc như sau:

if điều_kiện_1:
    # Thực hiện các câu lệnh trong if-block
elif điều_kiện_2:
    # Thực hiện các câu lệnh trong elif-block
...
elif điều_kiện_n:
    # Thực hiện các câu lệnh trong elif-block
else:
    # Thực hiện các câu lệnh trong else-block

Ở đây, bạn có thể đặt bao nhiêu lần elif cũng được. Và từ câu lệnh if đến lần elif cuối cùng là một khối, ta sẽ đặt cho nó một cái tên là khối BIG để dễ hiểu. Cấu trúc này hoạt động như sau:

  • Bước 1: Kiểm tra xem điều_kiện_1 có phải là True hay không?
  • Bước 2: Nếu có, thực hiện if-block và kết thúc khối BIG. Nếu không, chuyển sang Bước 3.
  • Bước 3: Kiểm tra xem điều_kiện_2 có phải là True hay không?
  • Bước 4: Nếu có, thực hiện elif-block và kết thúc khối BIG. Nếu không, chuyển sang Bước 5.
  • ...
  • Bước (n - 1) x 2: Kiểm tra xem điều_kiện_n có phải là True hay không?
  • Bước (n - 1) x 2 + 1: Nếu có, thực hiện elif-block.
  • Bước (n - 1) x 2 + 2: Kết thúc khối BIG.

Ví dụ:

a = 0
if a - 1  0:
    print('a nhỏ hơn 1')
elif a - 1 > 0:
    print('a lớn hơn 1')
else:
    print('a bằng 1')

Cấu trúc điều kiện match-case (Python 3.10)

Cấu trúc điều kiện match-case là một cấu trúc mới trong Python 3.10 (không được hỗ trợ trong các phiên bản cũ hơn). Thay vì kiểm tra các điều kiện, nó kiểm tra các trường hợp có thể xảy ra đối với một giá trị.

Ví dụ:

t = 5
match t:
    case 1:
        print("t = 1")
    case 2:
        print("t = 2")
    case 3:
        print("t = 3")
    case _:
        print("t > 3")

Ngoài ra, ta cũng có thể sử dụng toán tử or hoặc câu lệnh if với case để mở rộng pattern:

t = 5
match t:
    case 1 | 3 | 5 | 7 | 9:
        print("t là số lẻ bé hơn 10")
    case 2 | 4 | 6 | 8:
        print("t là số chẵn bé hơn 10")
    case _:
        print("t bằng 0")

Block trong Python

Trong Python, các block được phân chia bằng cách sử dụng lề và định dạng code. Các câu lệnh có cùng lề được coi là cùng một block.

Một số điều lưu ý về việc định dạng code block trong Python:

  • Câu lệnh mở block kết thúc bằng dấu hai chấm (:), sau đó phải xuống dòng và lùi lề vào trong.
  • Những dòng code cùng lề thì là cùng một block.
  • Một block có thể có nhiều block con.
  • Khi căn lề block không sử dụng cả tab lẫn space.
  • Nên sử dụng 4 space để căn lề một block.

Ví dụ:

if a - 1 > 0:
    print('a lớn hơn 1')

Tuy nhiên, việc sử dụng các dấu chấm phẩy (;) để ngắt câu lệnh và việc sử dụng các câu lệnh trên cùng một dòng không được khuyến khích.

Kết luận

Trên đây là một số cấu trúc rẽ nhánh phổ biến trong Python. Cấu trúc rẽ nhánh rất hữu ích để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau. Đừng quên thực hành và áp dụng những kiến thức đã học vào các dự án thực tế của bạn. Chúc bạn may mắn!

1