If với elif
Hãy sử dụng ba phát biểu if liên tiếp để in ra A nếu Apples win, in ra B nếu Bananas win, và in
ra T nếu nó là bằng:
>>> apple_total = 6
>>> banana_total = 6
>>> if apple_total > banana_total:
… print(‘A’)
…
>>> if banana_total > apple_total:
… print(‘B’)
…
>>> if apple_total == banana_total:
… print(‘T’)
…
T
Khối của hai phát biểu đầu tiên bị bỏ qua,vì biểu thức Boolean của chúng là False. Nhưng khối
của phát biểu if thứ ba thực thi, xuất ra T.
Khi bạn đặt một phát biểu if sau cái khác, chúng là độc lập. Mỗi biểu thức Boolean được đánh
giá, bất kể liệu các biểu thức Boolean trước là True hay False.
Cho bất cứ các giá trị đã cho của apple_total và banana_total, chỉ một trong những phát biểu
if của chúng ta có thể chạy. Ví dụ, nếu apple_total > banana_total là True, thì phát biểu if
đầu tiên sẽ chạy, nhưng hai cái khác sẽ không. Nó là có thể để viết code để nêu bật rằng chỉ
một khối code được phép chạy. Sau đây là làm cách nào chúng ta có thể làm cái đó:
¶ >>> if apple_total > banana_total:
… print(‘A’)
· … elif banana_total > apple_total:
… print(‘B’)
… elif apple_total == banana_total:
… print(‘T’)
…
T
Cái này bây giờ là một phát biểu if đơn, không phải ba phát biểu riêng rẽ. Cho lí do này, không
nhấn enter tại prompt …, thay vào đó gõ dòng elif.
Để thực thi phát biểu if này, Python bắt đầu bằng cách đánh giá biểu thức Boolean đầu tiên. Nếu
nó là True, thì A được cho ra, và phần còn lại của các elifs được bỏ qua. Nếu nó là False, Python
tiếp tục đánh giá biểu thức Boolean thứ hai. Nếu nó là True, thì B được cho ra, và elif còn
lại được bỏ qua. Nếu nó là False, Python tiếp tục đánh giá biểu thức Boolean thứ ba. Nếu nó
là True, thì T được cho ra.
Từ khoá elif có nghĩa cho “else-if”. Sử dụng cái naỳ như sự nhắc nhở rằng một biểu thức elif được
kiểm tra chỉ nếu không có thứ gì khác trước nó trong phát biểu if được thực thi.
Phiên bản code này tương ứng với code trước nơi chúng ta sử dụng ba phát biểu if riêng rẽ. Chúng
ta đã muốn cho phép khả năng thực thi nhiều hơn một khối, chúng ta sẽ phải sử dụng ba phát biểu
if riêng rẽ, không phải một phát biểu if đơn với các khối elif.