Trong lập trình Python, việc điều khiển luồng thực thi của chương trình dựa trên các điều kiện khác nhau là một yếu tố cốt lõi. Cấu trúc if-else chính là một trong những cách cơ bản để hiện thực. Câu lệnh này cho phép các nhà phát triển chỉ định các khối mã sẽ được thực thi khi một điều kiện là đúng hoặc sai. Để nắm vững các nguyên tắc và cách áp dụng hiệu quả của if-else trong Python, bạn có thể tham khảo bài viết dưới đây.
Lệnh if-else trong Python là gì?
Câu lệnh if-else
trong Python được dùng để thực thi một khối lệnh khi điều kiện trong câu lệnh if
là đúng, và thực thi một khối lệnh khác khi điều kiện đó sai.
Cú pháp của câu lệnh if-else
trong Python như sau:
if biểu_thức_boolean:
# Khối lệnh sẽ được thực thi
# khi biểu_thức_boolean là đúng
else:
# Khối lệnh sẽ được thực thi
# khi biểu_thức_boolean là sai
Nếu biểu_thức_boolean
có giá trị TRUE
(đúng), 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.
Flow chart của câu lệnh if-else trong Python
Flow chart dưới đây mô rat cách câu lệnh if-else
được sử dụng:
Nếu expr
là True, khối lệnh stmt1, 2, 3
sẽ được thực thi, sau đó luồng chương trình tiếp tục với stmt7
. Tuy nhiên, nếu expr
là False, khối lệnh stmt4, 5, 6
sẽ được thực thi và sau đó luồng chương trình cũng sẽ tiếp tục với stmt7
.
Mô phỏng bằng code Python của flow chart trên như sau:
if expr==True:
stmt1
stmt2
stmt3
else:
stmt4
stmt5
stmt6
Stmt7
Ví dụ về câu lệnh if-else trong Python
Để hiểu rõ hơn về cách dùng câu lệnh if-else, mình sẽ lấy một ví dụ cụ thể. Ở đây, biến age
có thể nhận nhiều giá trị khác nhau. Nếu biểu thức age > 18
là đúng, thì thông báo “eligible to vote” (đủ điều kiện bầu cử) sẽ được hiển thị; ngược lại, nếu biểu thức này sai thì thông báo “not eligible to vote” (không đủ điều kiện bầu cử) sẽ xuất hiện. Flow chart dưới đây minh họa logic này:
Bây giờ, mình cùng xem cách thực thi lệnh bằng Python cho flow chart trên:
age=25
print ("age: ", age)
if age >=18:
print ("eligible to vote")
else:
print ("not eligible to vote")
Khi chạy đoạn code trên, bạn sẽ nhận được kết quả sau:
age: 25
eligible to vote
Để kiểm tra khối lệnh else
, bạn hãy thay đổi giá trị của biến age
thành 12
rồi chạy lại code.
age: 12
not eligible to vote
Câu lệnh if elif else trong Python
Câu lệnh if elif else
cho phép bạn kiểm tra nhiều biểu thức xem có giá trị TRUE hay không, và thực thi một khối code ngay khi một trong các điều kiện cho ra kết quả 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 khối if.
Cú pháp của câu lệnh if elif else
trong Python
if biểu_thức_1:
lệnh(các_lệnh)
elif biểu_thức_2:
lệnh(các_lệnh)
elif biểu_thức_3:
lệnh(các_lệnh)
else:
lệnh(các_lệnh)
Cách lệnh if elif else hoạt động
elif
là viết tắt của else if
. Điều này cho phép sắp xếp logic dưới dạng chuỗi các lệnh elif
sau lệnh if
đầu tiên. Nếu lệnh if
đầu tiên cho kết quả false
, các lệnh elif
tiếp theo sẽ được đánh giá lần lượt, cho đến khi có một câu lệnh đúng thì sẽ dừng việc đánh giá và thực thi khối lệnh tương ứng.
Cuối cùng trong chuỗi 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 đó không thỏa mãn.
Ví dụ có các mức giảm giá khác nhau cho một lần mua hàng:
- 20% cho số tiền vượt quá 10000
- 10% cho số tiền từ 5000 đến 10000
- 5% nếu số tiền từ 1 đến 5000
- Không giảm giá nếu số tiền nhỏ hơn 1000
Flow chart sau minh họa các điều kiện này:
Chúng ta có thể viết một đoạn code Python để thực hiện logic giảm giá theo các điều kiện khác nhau bằng cách sử dụng 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)
Để kiểm tra code trên, hãy thay đổi giá trị của amount
và xem kết quả với các giá trị 800, 2500, 7500 và 15000. Kết quả đầ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 code này hoạt động tốt, nhưng bạn có thể thấy rằng mức độ thụt dòng tăng lên ở mỗi câu lệnh if
và else
. Điều này có thể gây khó khăn trong việc quản lý code nếu có thêm nhiều điều kiện phức tạp.
Ví dụ về câu lệnh if-elif-else trong Python
Để làm cho code dễ đọc và dễ hiểu hơn, mình có thể sử dụng câu lệnh if-elif-else
. Dưới đây là đoạn code Python cho cùng logic giảm giá, nhưng được viết với cấu trúc if-elif-else
:
amount = 2500
print('Amount = ' + str(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 = ' + str(amount - discount))
Kết quả của đoạn code trên như sau:
Amount: 2500
Payable amount = 2375.0
Lời kết
Vậy là chúng ta đã cùng nhau tìm hiểu chi tiết về cấu trúc và cách sử dụng lệnh if-else trong Python. Đây là một công cụ cơ bản nhưng vô cùng quan trọng để tạo ra các chương trình có tính logic và khả năng đưa ra quyết định khác nhau. Hy vọng bài viết này sẽ giúp bạn nắm vững kiến thức này và có thể áp dụng chúng một cách hiệu quả trong quá trình học và làm việc với Python.