Sau khi đã cùng nhau tìm hiểu về điều kiện if trong Python, chúng ta sẽ tiếp tục series các bài viết về Python với chủ đề xoay quanh cấu trúc điều kiện else và elif trong ngôn ngữ Python. Đây là những cấu trúc có thể được coi là bổ trợ cho điều kiện if mà chúng ta đã biết. Chúng cho phép chúng ta thực hiện nhiều nghiệp vụ rẽ nhánh một cách dễ dàng mà không bị sượng khi phải lạm dụng câu lệnh if.

1. Mệnh đề else trong Python

Ở bài trước, chúng ta đã cùng nhau tìm hiểu cách sử dụng một mệnh đề if để thực hiện một statement hoặc một block các statement. Đến đây, chúng ta đã có thể bắt đầu tìm hiểu thêm nhiều điều khác mà chúng ta còn có thể làm.

Đôi khi bạn sẽ muốn thực hiện một cơ số các hành động nếu một điều kiện đúng, ngược lại sẽ thực hiện một số công việc khác nếu điều kiện đó sai. Điều này có thể được thực hiện với mệnh đề else:

if <expr>:
    <statement(s)>
else:
    <statement(s)>

Nếu <expr> là true, block đầu tiên sẽ được thực hiện và block còn lại sẽ được bỏ qua. Nếu <expr> là false thì block đầu tiên sẽ bị bỏ qua và block thứ hai sẽ được thực hiện. Bằng một trong hai cách, việc thực thi đoạn code sẽ được tiếp tục từ sau đoạn code thứ hai. 

Chúng ta sẽ cùng nhau phân tích một ví dụ cụ thể dưới đây:

>>> x = 5
>>> if x > 1:
...     print('first block')
...     print('x is greater than 1')
... else:
...     print('second block')
...     print('x is smaller than 1')
... 
first block
x is greater than 1

Trong ví dụ này, x > 1 nên block code thứ nhất sẽ được thực thi và block code thứ hai sẽ bị bỏ qua.

>>> if x > 5:
...     print('first block')
...     print('x is greater than 5')
... else:
...     print('second block')
...     print('x is smaller or equals to 5')
... 
second block
x is smaller or equals to 5

Ngược lại, trong ví dụ này thì block code thứ hai được thực hiện còn block code đầu tiên đã bị bỏ qua.

2. Mệnh đề elif trong Python

Với trường hợp chúng ta muốn có nhiều nhánh cho các trường hợp điều kiện thay vì chỉ có hai điều kiện để thực hiện hành động là đúng hay sai, Python cung cấp cho các lập trình viên từ khóa elif. Với nó, ta có thể sử dụng một hay nhiều mệnh đề elif để thực hiện các block code dựa trên điều kiện mà nó áp dụng. 

Đây là cách mà chúng ta sẽ sử dụng mệnh đề elif:

if <expr>:
    <statement(s)>
elif <expr>:
    <statement(s)>
elif <expr>:
    <statement(s)>
    ...
else:
    <statement(s)>

Số lượng các mệnh đề elif có thể sử dụng là không giới hạn, mệnh đề else trong nó không phải là bắt buộc. Nếu có, mệnh đề else chỉ được duy nhất một và phải được định nghĩa sau cùng:

>>> x = 1
>>> if x == 3:
...     print('x is equals 3')
... elif x == 2:
...     print('x is equals 2')
... elif x == 1:
...     print('x is equals 1')
... else:
...     print('cannot measure x')
... 
x is equals 1

>>> Xem thêm bài viết:

- Bài 1: Cài đặt Python và tạo dựng môi trường làm việc

- Bài 2: Biến và kiểu dữ liệu cơ bản trong Python

3. Conditional expressions

Python hỗ trợ một mệnh đề điều kiện khác nữa được gọi là conditional expression. Nó được thêm vào ngôn ngữ vào năm 2005. Trong hình dạng nguyên bản, mệnh đề này sẽ có cấu trúc như sau:

<expr1> if <conditional_expr> else <expr2>

Mệnh đề này khác biệt so với mệnh đề if được liệt kê ở trên ví nó không phải một cấu trúc sẽ điều khiển và điều hướng các luồng dữ liệu của quá trình thực thi tiến trình. Nó hoạt động giống với một phương thức định nghĩa một biểu hiện. Trong ví dụ trên, <conditional_expr> là một giá trị cần được tính toán, nó sẽ được sử dụng như điều kiện trong mệnh đề if. Nếu nó là true, <expr1> sẽ được thực hiện và ngược lại <expr2> sẽ được thực hiện.

Từ đó ta thấy được, trong cấu trúc này, mệnh đề ở giữa sẽ được thực hiện đầu tiên, và dựa trên kết quả đó, một trong các expressions sẽ được trả về. Dưới đây là các ví dụ để bạn có thể hiểu cặn kẽ được cấu trúc này:

>>> raining = False
>>> print("Let's go to the", 'beach' if not raining else 'library')
Let's go to the beach
>>> 
>>> raining = True
>>> print("Let's go to the", 'beach' if not raining else 'library')
Let's go to the library
>>> 
>>> 
>>> age = 12
>>> s = 'minor' if age < 21 else 'adult'
>>> s
'minor'
>>> 
>>> 
>>> 'yes' if ('qux' in ['foo', 'bar', 'baz']) else 'no'
'no'

Một conditional expression nên được đối xử như một expression thông thường. Nó có thể được sử dụng trong một expression dài hơn. Nếu chúng ta muốn gom nhiều thể hiện lại vào thành một block, ta sẽ cần phải sử dụng các dấu đóng và mở ngoặc để làm việc đó.

>>> x = y = 30
>>> z = 1 + x if x > y else x + 3
>>> z
33
>>> z = (1 + x) if x > y else (y + 2)
>>> z
32
>>> z = (1 + x) if x > y else (x + 2)
>>> z
32
>>> z = (1 + x) if x > y else (x + 3)
>>> z
33

Hoặc ví dụ dưới đây:

>>> x = y = 40

>>> z = 1 + (x if x > y else y) + 2
>>> z
43

Kết

Trên đây là những chia sẻ từ Stringee về các mệnh đề elif và else trong Python. Đây là các mệnh đề rất quan trọng sẽ giúp chúng ta có thể xây dựng nhiều logic phức tạp với các cấu trúc rẽ nhánh khác nhau. Việc thông hiểu và vận dụng được các cấu trúc này sẽ giúp đỡ bạn rất nhiều trong việc học tập và làm việc của mình.


Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.

Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy,  Adavigo, bTaskee…

Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: