if rút gọn là cách viết điều kiện trên 1 dòng thay vì dùng nhiều dòng như if thông thường.
Cách này giúp code ngắn gọn hơn khi xử lý logic đơn giản.
Cú pháp:
gia_tri_1 if dieu_kien else gia_tri_2Ý nghĩa:
- Nếu dieu_kien đúng thì lấy gia_tri_1
- Ngược lại lấy gia_tri_2
Ví dụ viết theo cách thông thường:
x = 5
if x > 0:
print("Số dương")
else:
print("Không phải số dương")Viết rút gọn:
x = 5
print("Số dương" if x > 0 else "Không phải số dương")Có thể dùng if rút gọn để gán giá trị cho biến.
Ví dụ:
diem = 8
ket_qua = "Đậu" if diem >= 5 else "Rớt"
print(ket_qua)tuoi = 16
loai = "Người lớn" if tuoi >= 18 else "Trẻ em"
print(loai)Kết quả:
Trẻ em
Có thể dùng để chọn giá trị theo điều kiện.
Ví dụ:
a = 10
b = 7
max_so = a if a > b else b
print(max_so)Kết quả:
10
Khi cần xử lý 3 kết quả khác nhau, ta có thể lồng nhiều if rút gọn vào nhau.
Cú pháp:
gia_tri_1 if dieu_kien_1 else gia_tri_2 if dieu_kien_2 else gia_tri_3Ý nghĩa:
- Nếu dieu_kien_1 đúng → lấy gia_tri_1
- Nếu sai, kiểm tra dieu_kien_2
- Nếu dieu_kien_2 đúng → lấy gia_tri_2
- Nếu vẫn sai → lấy gia_tri_3
Viết thông thường:
x = 0
if x > 0:
print("Dương")
elif x < 0:
print("Âm")
else:
print("Bằng 0")Viết rút gọn:
x = 0
print("Dương" if x > 0 else "Âm" if x < 0 else "Bằng 0")Ví dụ phân loại số dương, âm, bằng 0:
x = -5
ket_qua = "Dương" if x > 0 else "Âm" if x < 0 else "Bằng 0"
print(ket_qua)Có thể dùng để phân loại nhiều mức.
Ví dụ:
diem = 8
xep_loai = "Giỏi" if diem >= 8 else "Khá" if diem >= 5 else "Yếu"
print(xep_loai)Kết quả:
Giỏi Ví dụ khác:
diem = 6
xep_loai = "Giỏi" if diem >= 8 else "Khá" if diem >= 5 else "Yếu"
print(xep_loai)Kết quả:
Khá
lambda thường kết hợp với if rút gọn vì lambda chỉ viết được 1 biểu thức. Ví dụ kiểm tra số chẵn lẻ:
kiem_tra = lambda x: "Chẵn" if x % 2 == 0 else "Lẻ"
print(kiem_tra(5))Kết quả:
Lẻ
| Trường hợp | Nên dùng |
|---|---|
| Điều kiện đơn giản | Có |
| Nhiều bước xử lý | Không nên |
| Kết hợp lambda | Rất phù hợp |
Không nên lạm dụng if rút gọn khi điều kiện quá dài vì code sẽ khó đọc.
Tìm kiếm:
Hướng dẫn video if rút gọn trong python