Bài toán cơ bản: cho 3 số a, b, c, tìm giá trị lớn nhất (maximum).
Cách 1: If-elif-else (Thuật toán thủ công)
a, b, c = 2, 34, 4
if a > b and a > c:
print(f"Max là: {a}")
elif b > a and b > c:
print(f"Max là: {b}")
elif c > a and c > b:
print(f"Max là: {c}")
else:
print(f"Max là: {a}") # trường hợp bằng nhauKết quả
Max là: 34
Cách 2: Dùng hàm built-in max() (Khuyên dùng)
a, b, c = 25, 3, 12
print(f"Max là: {max(a, b, c)}") # 25
# Hoặc với list
nums = [5, 5, 5]
print(f"Max là: {max(nums)}") # 5Cách 3: Ternary operator (1 dòng)
max_val = a if a > b and a > c else (b if b > c else c) print(max_val)
So sánh
| Cách | Ưu điểm | Nhược điểm |
|---|---|---|
| if-elif-else | Hiểu logic, không dùng built-in | Dài, lặp code, dễ sai |
| max() | Ngắn, đọc dễ, tối ưu C, hỗ trợ iterable | Ẩn logic so sánh |
| Ternary | Compact | Khó đọc, lồng nhọn |
Mở rộng: Tìm max của N số
numbers = [10, 45, 23, 78, 5, 92, 11]
print(max(numbers)) # 92
# Tìm index của max
max_index = numbers.index(max(numbers))
print(f"Max {numbers[max_index]} tại index {max_index}")Kết luận
Luôn dùng max() cho code production. Cách if-else chỉ để luyện tập tư duy thuật toán. max() hoạt động với bất kỳ iterable và đối tượng có so sánh (comparable).