Cấu Trúc Rẽ Nhánh
1. Câu lệnh if
Lệnh if kiểm tra một điều kiện. Nếu điều kiện đó Đúng (True), khối lệnh bên trong if sẽ được thực thi. Nếu Sai (False), nó sẽ bị bỏ qua.
Sơ đồ thuật toán lệnh if:
Ví dụ:
tuoi = 20
if tuoi >= 18:
print("Bạn đã đủ tuổi trưởng thành")
2. if...else
Khi cần xử lý thêm trường hợp điều kiện bị Sai (False), ta dùng thêm else.
Sơ đồ thuật toán lệnh if...else:
Ví dụ:
diem = float(input("Nhập điểm: "))
if diem >= 5:
print(" Đậu!")
else:
print(" Rớt!")
3. if...elif...else
Khi có nhiều điều kiện:
diem = float(input("Nhập điểm TB: "))
if diem >= 9:
xep_loai = "Xuất sắc "
elif diem >= 8:
xep_loai = "Giỏi "
elif diem >= 6.5:
xep_loai = "Khá "
elif diem >= 5:
xep_loai = "Trung bình "
else:
xep_loai = "Yếu "
print(f"Xếp loại: {xep_loai}")
:::info Thứ tự kiểm tra
Python kiểm tra từ trên xuống. Khi gặp điều kiện đúng đầu tiên → thực hiện và bỏ qua tất cả elif/else còn lại.
:::
4. if lồng nhau
tuoi = int(input("Tuổi: "))
co_bang_lai = input("Có bằng lái? (y/n): ")
if tuoi >= 18:
if co_bang_lai == "y":
print(" Được phép lái xe")
else:
print(" Đủ tuổi nhưng chưa có bằng lái")
else:
print(" Chưa đủ tuổi")
:::tip Gộp điều kiện thay vì lồng sâu
if tuoi >= 18 and co_bang_lai == "y":
print(" Được phép lái xe")
:::
5. Toán tử 3 ngôi (Ternary)
Viết if...else trên 1 dòng:
tuoi = 20
trang_thai = "Trưởng thành" if tuoi >= 18 else "Vị thành niên"
so = 15
ket_qua = "Chẵn" if so % 2 == 0 else "Lẻ"
6. Match-Case (Python 3.10+)
Tương tự switch-case trong C/Java:
ngay = int(input("Nhập số (1-7): "))
match ngay:
case 1:
print("Thứ Hai")
case 2:
print("Thứ Ba")
case 3:
print("Thứ Tư")
case 4:
print("Thứ Năm")
case 5:
print("Thứ Sáu")
case 6:
print("Thứ Bảy")
case 7:
print("Chủ Nhật")
case _:
print("Không hợp lệ!")
Kết hợp nhiều giá trị
match ngay:
case 1 | 2 | 3 | 4 | 5:
print("Ngày làm việc ")
case 6 | 7:
print("Cuối tuần ")
case _:
print("Không hợp lệ")
7. Truthy & Falsy
Các giá trị Falsy (tương đương False):
| Giá trị | Kiểu |
|---|---|
False | bool |
0, 0.0 | int, float |
"" (rỗng) | str |
[], {}, () | list, dict, tuple |
None | NoneType |
ten = input("Nhập tên: ")
if ten:
print(f"Xin chào, {ten}!")
else:
print("Bạn chưa nhập tên!")
# Kiểm tra list rỗng
ds = []
if not ds:
print("Danh sách trống!")
Bài tập thực hành
- Nhập 3 số → tìm số lớn nhất.
- Nhập năm → kiểm tra năm nhuận (chia hết 4, không chia hết 100, trừ khi chia hết 400).
- Máy tính đơn giản: nhập 2 số và phép tính (+, -, *, /) → in kết quả, kiểm tra chia cho 0.
- Nhập tháng (1-12) → in số ngày trong tháng đó (dùng
match-case).