
Sau khi đã làm quen với bài toán kiểm tra âm dương, bài tập kinh điển tiếp theo mà mọi lập trình viên Python đều phải trải qua là: “Nhập số nguyên n, kiểm tra xem n là số chẵn hay số lẻ”.
Bài toán này tuy ngắn gọn nhưng lại giới thiệu một khái niệm cực kỳ quan trọng trong toán học máy tính: Toán tử chia lấy dư. Bài viết này sẽ giúp bạn nắm vững logic và cách viết code chuẩn xác nhất.
Bạn hãy tham khảo các khóa học
- Làm chủ Python trong 4 tuần
- Đầu tư Chứng Khoán theo phương pháp CANSLIM
- Thành thạo xử lý dữ liệu với Python
1. Phân tích thuật toán & Toán tử Modulo
Khác với toán học thông thường dùng phép chia, trong lập trình, để xác định tính chẵn lẻ, chúng ta sử dụng phép Chia lấy dư (ký hiệu là %).
Quy tắc logic:
-
Số Chẵn (Even): Là số chia hết cho 2 (Dư bằng 0).
n % 2 == 0 -
Số Lẻ (Odd): Là số chia cho 2 dư 1.
n % 2 != 0(hoặcn % 2 == 1)
Ví dụ:
4 % 2 = 0 => 4 là số chẵn.
7 % 2 = 1 => 7 là số lẻ.
2. Code Python mẫu

Dưới đây là 3 cách viết code từ cơ bản đến nâng cao để bạn lựa chọn tùy theo tình huống.
Cách 1: Cách viết cơ bản
Sử dụng cấu trúc if-else truyền thống kết hợp với toán tử %.
# 1. Nhập dữ liệu và ép kiểu sang số nguyên
n = int(input("Nhập vào số nguyên n: "))
# 2. Kiểm tra phần dư khi chia cho 2
if n % 2 == 0:
print(f"{n} là số CHẴN.")
else:
print(f"{n} là số LẺ.")
Cách 2: Viết tắt trên 1 dòng
Python cho phép viết code cực ngắn gọn. Cách này thường được các lập trình viên kinh nghiệm sử dụng.
n = int(input("Nhập n: "))
print("Chẵn" if n % 2 == 0 else "Lẻ")
Cách 3: Code tối ưu xử lý lỗi
Để tránh chương trình bị dừng đột ngột (Crash) khi người dùng nhập sai (ví dụ nhập chữ cái), hãy dùng khối try...except.
print("--- KIỂM TRA CHẴN LẺ ---")
try:
# Bước 1: Nhập liệu an toàn
user_input = input("Vui lòng nhập một số nguyên: ")
n = int(user_input)
# Bước 2: Xử lý logic
if n % 2 == 0:
print(f"Kết quả: {n} là số CHẴN.")
else:
print(f"Kết quả: {n} là số LẺ.")
except ValueError:
# Bước 3: Báo lỗi thân thiện
print("Lỗi: Dữ liệu nhập vào không hợp lệ. Vui lòng chỉ nhập số nguyên!")
3. Ba lỗi sai của người mới
Trong quá trình học, rất nhiều bạn mắc phải những lỗi logic sau đây:
-
Nhầm lẫn toán tử
/và%:-
Sai:
if n / 2 == 0(Đây là phép chia lấy kết quả, ví dụ 4/2 = 2, không phải = 0). -
Đúng:
if n % 2 == 0(Chia lấy phần dư).
-
-
Nhầm lẫn phép gán
=và so sánh==:-
Sai:
if n % 2 = 0(Dấu=dùng để gán giá trị cho biến). -
Đúng:
if n % 2 == 0(Dấu==mới dùng để so sánh).
-
-
Quên trường hợp số Âm:
-
Nhiều bạn nghĩ số âm không xét chẵn lẻ. Thực tế, -2, -4 vẫn là số chẵn; -1, -3 vẫn là số lẻ. Code mẫu ở trên đã xử lý đúng trường hợp này.
-
4. Câu hỏi thường gặp (FAQ)
Tổng hợp những thắc mắc phổ biến nhất về bài toán Chẵn/Lẻ:
1. Số 0 là số chẵn hay số lẻ?
Trong toán học, số 0 chia hết cho 2 (0 : 2 = 0 dư 0). Vì vậy, số 0 là số CHẴN. Code Python ở trên sẽ in ra “0 là số CHẴN” là hoàn toàn chính xác.
2. Số âm (ví dụ -5) có tính là chẵn lẻ không?
Có. Tính chẵn lẻ áp dụng cho tập hợp số nguyên, bao gồm cả số âm. Ví dụ: -4 là chẵn, -5 là lẻ.
3. Tại sao tôi nhập 4.0 máy lại báo lỗi hoặc chạy sai?
Vì bài toán chẵn lẻ thường chỉ áp dụng cho số nguyên (int). Nếu bạn nhập 4.0, Python hiểu đó là số thực (float). Để xử lý, bạn cần ép kiểu hoặc kiểm tra xem phần thập phân có bằng 0 hay không.
4. Có cách nào kiểm tra nhanh hơn toán tử % không?
Có. Với các bài toán yêu cầu hiệu suất cực cao (xử lý hàng triệu số), lập trình viên dùng toán tử Bitwise AND (&).
Code: if n & 1 == 0: print(“Chẵn”). (Tuy nhiên, với người mới học thì không cần thiết dùng cách này).
5. Tôi dùng if n % 2 == 1 để kiểm tra số lẻ có được không?
Được. Tuy nhiên, cách viết else (ngược lại của chẵn) sẽ gọn gàng và bao quát hơn.
6. Toán tử % hoạt động như thế nào?
Toán tử % trả về phần dư của phép chia. Ví dụ:
5 % 2 bằng 1 (vì 5 chia 2 được 2, dư 1).
8 % 2 bằng 0 (vì 8 chia 2 được 4, dư 0).
Tổng kết:
Kiểm tra chẵn lẻ là bài tập nền tảng giúp bạn hiểu rõ về toán tử số học trong Python. Hãy luyện tập gõ lại code để ghi nhớ cú pháp if-else và cách dùng % nhé!
Bạn xem: Bài tập Python 3: Kiểm tra số nguyên n có chia hết cho 3 không?