Bài tập Python 4: Tìm số lớn nhất trong 2 số a và b
Bài tập Python 4: Tìm số lớn nhất trong 2 số a và b

Trong lập trình, việc so sánh các giá trị là thao tác cơ bản nhất để xây dựng nên các thuật toán phức tạp như Sắp xếp (Sort) hay Tìm kiếm (Search).

Bài toán “Nhập 2 số a, b và tìm số lớn hơn” là bài tập nhập môn giúp bạn hiểu rõ về Toán tử so sánh (>, <) và cách Python hỗ trợ các hàm dựng sẵn (Built-in functions) mạnh mẽ như thế nào.

Bạn hãy tham khảo các khóa học

1. Phân tích thuật toán

Chúng ta có 2 biến đầu vào là ab. Mục tiêu là in ra màn hình giá trị nào lớn hơn.

[unica_courses limit=”6″ keyword=”Excel”]

Logic so sánh:

  1. Trường hợp 1: Nếu a > b => Số lớn hơn là a.
  2. Trường hợp 2: Nếu b > a => Số lớn hơn là b.

  3. Trường hợp 3: Nếu a == b => Hai số bằng nhau (có thể in ra số nào cũng được hoặc thông báo bằng nhau).

2. Code Python mẫu

Bài tập Python 4: Tìm số lớn nhất trong 2 số a và b
Bài tập Python 4: Tìm số lớn nhất trong 2 số a và b

Dưới đây là 3 cách giải phổ biến nhất.

Cách 1: Sử dụng If-Else (Cách truyền thống)

Đây là cách viết giúp người mới học hiểu rõ luồng đi của thuật toán.

# 1. Nhập vào 2 số a và b
# Lưu ý: Có thể dùng float() nếu muốn so sánh số thực
a = int(input("Nhập số a: "))
b = int(input("Nhập số b: "))
# 2. So sánh và in kết quả
if a > b:
    print(f"Số lớn hơn là: {a}")
elif b > a:
    print(f"Số lớn hơn là: {b}")
else:
    print("Hai số bằng nhau.")

Cách 2: Sử dụng hàm max() 

Python cung cấp sẵn hàm max() để tìm giá trị lớn nhất cực kỳ nhanh chóng. Đây là cách các lập trình viên chuyên nghiệp thường dùng.

a = int(input("Nhập số a: "))
b = int(input("Nhập số b: "))
# Tìm số lớn nhất chỉ với 1 dòng lệnh
ket_qua = max(a, b)
print(f"Số lớn nhất là: {ket_qua}")

Cách 3: Code tối ưu (Xử lý lỗi nhập liệu)

Bài tập Python 4: Tìm số lớn nhất trong 2 số a và b
Bài tập Python 4: Tìm số lớn nhất trong 2 số a và b

Để chương trình không bị lỗi (Crash) khi người dùng lỡ tay nhập chữ cái, chúng ta dùng khối try...except.

print("--- TÌM SỐ LỚN NHẤT ---")
try:
    # Nhập liệu an toàn trên 1 dòng (cách nhập nâng cao)
    # Ví dụ nhập: 10 20
    print("Nhập 2 số a và b (cách nhau bởi dấu cách):")
    a, b = map(int, input().split())
    if a > b:
        print(f"Kết quả: {a} là số lớn hơn.")
    elif b > a:
        print(f"Kết quả: {b} là số lớn hơn.")
    else:
        print(f"Kết quả: Hai số bằng nhau ({a}).")
except ValueError:
    print("Lỗi: Vui lòng nhập đúng định dạng số nguyên!")

3. Các lỗi thường gặp khi so sánh số

  1. So sánh chuỗi (String Comparison):

    • Nếu không dùng int(), Python sẽ so sánh theo thứ tự từ điển (ASCII).

    • Ví dụ: Chuỗi "9" sẽ lớn hơn chuỗi "100" (vì ký tự ‘9’ lớn hơn ‘1’). Đây là lỗi sai nghiêm trọng nhất.

  2. Quên trường hợp bằng nhau:

    • Nhiều đề bài yêu cầu tìm “số lớn hơn hẳn”. Nhưng nếu $a=b$, logic của bạn cần xử lý để không in ra thông tin sai lệch.

4. Câu hỏi thường gặp (FAQ)

Tổng hợp các thắc mắc phổ biến về so sánh trong Python:

1. Hàm max() có thể so sánh nhiều số hơn không?

Có. Hàm max() chấp nhận nhiều tham số. Ví dụ: max(a, b, c, d) sẽ trả về số lớn nhất trong 4 số.

2. Làm sao để so sánh số thập phân (số thực)?

Bạn chỉ cần thay hàm ép kiểu int() thành float(). Logic so sánh > và hàm max() vẫn hoạt động chính xác với số thực.

3. Tại sao khi nhập “10” và “2” thì máy bảo “2” lớn hơn?

Đó là do bạn quên ép kiểu int(). Python đang so sánh chuỗi ký tự: Ký tự ‘2’ (mã ASCII 50) lớn hơn ký tự ‘1’ của chuỗi “10” (mã ASCII 49).

4. Toán tử ba ngôi trong bài này viết thế nào?

Bạn có thể viết ngắn gọn: print(a if a > b else b). Tuy nhiên cách này sẽ in ra b nếu a bằng b.

5. Nếu nhập chữ cái thì làm sao để không bị lỗi?

Hãy sử dụng cấu trúc try…except ValueError như ở Code mẫu số 3. Nó sẽ bắt lỗi và thông báo thân thiện cho người dùng.

6. Cách nhập a, b = map(int, input().split()) hoạt động thế nào?

Đây là cách nhập nhiều biến trên 1 dòng. input().split() sẽ cắt chuỗi nhập vào theo dấu cách, và map(int, …) sẽ ép kiểu tất cả các phần tử đó sang số nguyên.


Tổng kết:

Việc tìm số lớn nhất giữa 2 số là nền tảng để bạn học tiếp bài toán “Tìm số lớn nhất trong 3 số” hoặc “Tìm số lớn nhất trong mảng”. Hãy luyện tập cách sử dụng hàm max() vì nó sẽ được dùng rất nhiều sau này!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *