Câu lệnh if-else trong Python được sử dụng để thực thi một khối mã khi điều kiện trong if statement là đúng, và một khối mã khác khi điều kiện là sai.
Cú pháp của câu lệnh if-else trong Python như sau −
if boolean_expression: # code block to be executed # when boolean_expression is true else: # code block to be executed # when boolean_expression is false
Nếu biểu thức boolean đánh giá là TRUE, thì các câu lệnh bên trong khối if sẽ được thực thi, ngược lại các câu lệnh trong khối else sẽ được thực thi.
Sơ đồ luồng này cho thấy cách sử dụng câu lệnh if-else −
Nếu expr là True, khối lệnh stmt1, 2, 3 sẽ được thực thi, sau đó dòng chảy mặc định sẽ tiếp tục với stmt7. Tuy nhiên, nếu expr là False, khối lệnh stmt4, 5, 6 sẽ chạy và dòng chảy mặc định sẽ tiếp tục.
Cài đặt Python của sơ đồ dòng chảy trên như sau −
if expr==True: stmt1 stmt2 stmt3 else: stmt4 stmt5 stmt6 Stmt7
Hãy cùng hiểu cách sử dụng câu lệnh if-else với ví dụ sau. Tại đây, biến age có thể nhận các giá trị khác nhau. Nếu biểu thức age > 18 là đúng, thì thông điệp đủ điều kiện để bỏ phiếu sẽ được hiển thị, ngược lại thông điệp không đủ điều kiện để bỏ phiếu sẽ được hiển thị. Sơ đồ luồng sau đây minh họa logic này −
Bây giờ, hãy xem cách triển khai Python cho sơ đồ dòng chảy trên.
age=25 print ("age: ", age) if age >=18: print ("eligible to vote") else: print ("not eligible to vote")
Khi thực thi đoạn mã này, bạn sẽ nhận được output −
age: 25 eligible to vote
Để kiểm tra khối else , hãy thay đổi tuổi thành 12 và chạy lại mã.
age: 12 not eligible to vote
Câu lệnh if elif else cho phép bạn kiểm tra nhiều biểu thức để xem có đúng (TRUE) hay không và thực hiện một khối mã ngay khi một trong các điều kiện đánh giá là đúng (TRUE).
Tương tự như khối else , khối elif cũng là tùy chọn. Tuy nhiên, một chương trình chỉ có thể chứa một khối else trong khi có thể có một số lượng tùy ý các khối elif theo sau một khối if .
if expression1: statement(s) elif expression2: statement(s) elif expression3: statement(s) else: statement(s)
Từ khóa elif là dạng viết tắt của else if . Nó cho phép logic được sắp xếp theo một chuỗi các câu lệnh elif sau câu lệnh if đầu tiên. Nếu câu lệnh if đầu tiên đánh giá là sai, các câu lệnh elif tiếp theo sẽ được đánh giá lần lượt và thoát khỏi chuỗi nếu bất kỳ câu nào được thỏa mãn.
Cuối cùng trong chuỗi điều kiện là khối else , khối này sẽ được thực thi khi tất cả các điều kiện if/elif trước đó đều không đúng.
Giả sử có các mức giảm giá khác nhau trên một đơn hàng −
20% trên số tiền vượt quá 10.000.
10% cho số tiền từ 5-10000,
5% nếu nó nằm trong khoảng từ 1 đến 5000.
không có giảm giá nếu số tiền < 1000
Sơ đồ luồng dưới đây minh họa các điều kiện này −
Chúng ta có thể viết mã Python cho logic trên với các câu lệnh if-else −
amount = 2500 print('Amount = ',amount) if amount > 10000: discount = amount * 20 / 100 else: if amount > 5000: discount = amount * 10 / 100 else: if amount > 1000: discount = amount * 5 / 100 else: discount = 0 print('Payable amount = ',amount - discount)
Đặt amount để kiểm tra tất cả các điều kiện có thể: 800, 2500, 7500 và 15000. Các đầu ra sẽ thay đổi tương ứng.
Amount: 800 Payable amount = 800 Amount: 2500 Payable amount = 2375.0 Amount: 7500 Payable amount = 6750.0 Amount: 15000 Payable amount = 12000.0
Mặc dù đoạn mã sẽ hoạt động hoàn hảo, nếu bạn nhìn vào mức độ thụt lề tăng lên ở mỗi câu lệnh if và else, thì sẽ trở nên khó quản lý nếu còn nhiều điều kiện hơn nữa.
Câu lệnh elif giúp mã dễ đọc và hiểu hơn. Dưới đây là mã Python cho cùng một logic với các câu lệnh if elif else −
amount = 2500 print('Amount = ',amount) if amount > 10000: discount = amount * 20 / 100 elif amount > 5000: discount = amount * 10 / 100 elif amount > 1000: discount = amount * 5 / 100 else: discount=0 print('Payable amount = ',amount - discount)
Đầu ra của đoạn mã trên như sau −
Amount: 2500 Payable amount = 2375.0