Lập trình Python: phát biểu if (phần 3)

If với else

Chúng ta có thể sử dụng từ khoá else để chạy code nếu tất cả biểu thức Boolean trong phát biểu if
là False. Sau đây là một ví dụ:

>>> if apple_total > banana_total:
… print(‘A’)
… elif banana_total > apple_total:
… print(‘B’)
… else:
… print(‘T’)

T

Python đánh giá các biểu thức Boolean từ đỉnh tới đáy. Nếu bất cứ trong số chúng là True, Python chạy
khối liên quan và nhảy qua phần còn lại của phát biểu if. Nếu tất cả biểu thức Boolean là False, Python
thực thi khối else.
Nhận thấy rằng không còn một kiểm tra cho apple_total == banana_total. Cách thức duy nhất để nhận phân else
của phát biểu if là nếu apple_total > banana_total là False và banana_total > apple_total là False, đó là,
nếu các giá trị là bằng nhau.
Bạn có nên sử dụng các phát biểu if riêng rẽ? Một phát biểu if với elif? Một phát biểu if với một else? Nó thường
đi xuống đối với ưa thích. Sử dụng một chuỗi elifs nếu bạn muốn nhất một khối code được thực thi. Một else
có thể giúp làm code rõ ràng hơn và loại bỏ nhu cầu viết một biểu thức Boolean catchall. Cái
quan trọng hơn nhiều style chính xác một phát biểu if là viết logic đúng!
Check code sau:

x = 5
if x > 2:
x = -3
if x > 1:
x = 1
else:
x = 3

Giá trị của x sau khi code này chạy là 3
Vì x > 2 là True nên khối lệnh if đầu tiên sẽ được thực thi.
Phép gán x = -3 làm cho x tham chiếu đến -3. Bây giờ là câu lệnh if thứ hai.
Ở đây, x > 1 là Sai, do đó khối else chạy và x = 3 làm cho x tham chiếu đến 3. Tôi muốn
đề nghị thay đổi if x > 1 thành elif x > 1 và quan sát hành vi của chương trình
thay đổi như thế nào!
Check 2 snippet code sau:

Snippet 1:
if temperature > 0:
print(‘warm’)
elif temperature == 0:
print(‘zero’)
else:
print(‘cold’)
Snippet 2:
if temperature > 0:
print(‘warm’)
elif temperature == 0:
print(‘zero’)
print(‘cold’)

Hai snippet code sau có chính xác làm điều tương tự. Giả định rằng temprature đã tham chiếu
đến một số. Câu trả lời là không. Snippet 2 luôn in cold là dòng đầu ra cuối cùng của nó, bởi vì
print(‘cold’) không được thụt lề! Nó không được liên kết với bất kỳ câu lệnh if nào.

Chia sẻ

Leave a Reply

Your email address will not be published. Required fields are marked *