
Nếu bạn mới học Python, bạn sẽ rất dễ rơi vào tình trạng: “mình hiểu lý thuyết, nhưng gặp bài tập là bí”. Lý do thường không phải vì bạn kém, mà vì bạn thiếu bộ bài tập vừa sức, có lộ trình, có test case và chỉ rõ lỗi thường gặp.
Trong bài này, bạn sẽ có 50 bài tập Python cơ bản có lời giải được sắp xếp theo thứ tự từ dễ đến khó:
Nhập xuất → If/Else → Vòng lặp → Chuỗi → List/Tuple → Dict/Set → Hàm → Mini project.
Bạn xem thêm:
- Hướng Dẫn Lập File Kế Toán Excel Theo Thông Tư 133 Cho SMEs
- 10 Thủ Thuật Excel Nâng Cao Cho Kế Toán Tổng Hợp
- Tool MMO: “Máy xay clip” chuẩn MMO cho TikTok, YouTube Shorts, Facebook Reels
Bạn nên học thế nào để lên trình nhanh?
-
Mỗi bài tự làm 10–20 phút trước khi xem lời giải.
-
Luôn chạy ít nhất 2 test case: 1 bình thường + 1 trường hợp biên (0, âm, rỗng…).
-
Xem lời giải xong, đóng lại và viết lại từ đầu.
10 lỗi người mới học Python hay gặp

Phần này giúp bạn tránh “kẹt” hàng giờ vì những lỗi rất nhỏ. Hãy đọc lướt 1 lần, sau đó quay lại khi bạn gặp lỗi.
1. Quên ép kiểu input()
-
Triệu chứng: bạn nhập
2và3nhưng ra23. -
Nguyên nhân:
input()trả về chuỗi. -
Cách sửa:
2. Nhầm = và ==
-
=dùng để gán,==dùng để so sánh trongif. -
Sai:
-
Đúng:
3. Sai range(): thiếu mất số cuối
-
range(1, n)chạy từ 1 đến n-1. -
Muốn đến n phải dùng
range(1, n+1).
4. Vòng lặp while không dừng
-
Triệu chứng: chạy mãi không xong.
-
Cách tự kiểm: đảm bảo biến điều kiện thay đổi trong vòng lặp.
5. Chia nguyên // và chia thực / bị dùng sai
-
/ra số thực,//ra phần nguyên. -
Sai phổ biến: dùng
9//5trong đổi C→F.
6. Lỗi thụt dòng
Python bắt buộc thụt dòng đúng sau if/for/while/def.
7. List rỗng nhưng vẫn max() / min()
-
Triệu chứng: ValueError.
-
Cách sửa:
8. Nhầm .append() và +
-
append(x)thêm 1 phần tử. -
+nối list (tạo list mới).
9. Nhầm split() và strip()
-
strip()xóa khoảng trắng đầu/cuối. -
split()tách từ.
10. Không test trường hợp biên
Bạn nên test thêm:
-
n = 0 -
n < 0 -
chuỗi rỗng
"" -
list rỗng
[]
Nhóm A: Nhập xuất Python cơ bản (Bài 1–8)

Bài 1: In “Hello, World!”
Độ khó: Dễ
Ý tưởng: Dùng print().
Test case
-
Output:
Hello, World!
Lỗi thường gặp
-
Thiếu dấu nháy hoặc thiếu ngoặc.
Bài 2: Nhập tên và chào hỏi
Độ khó: Dễ
Ý tưởng: input() trả về chuỗi.
Test case
-
Input:
An -
Output:
Xin chào, An
Lỗi thường gặp
-
Nối chuỗi thiếu khoảng trắng.
Bài 3: Nhập 2 số, in tổng
Độ khó: Dễ
Ý tưởng: Ép kiểu vì input() là chuỗi.
Test case
-
Input:
2và3.5 -
Output:
Tổng = 5.5
Lỗi thường gặp
-
Quên ép kiểu khiến
"2" + "3" = "23".
Bài 4: Diện tích hình chữ nhật
Test case
-
Input:
5và2 -
Output:
Diện tích = 10
Lỗi thường gặp
-
Nhập số âm (nếu muốn chặt chẽ, thêm kiểm tra
> 0).
Bài 5: Đổi độ C sang F
Test case
-
Input:
0→ Output:F = 32 -
Input:
100→ Output:F = 212
Lỗi thường gặp
-
Dùng
9//5(chia nguyên) khiến sai kết quả.
Bài 6: Tính BMI
Test case
-
Input:
60,1.7→ Output:BMI = 20.76
Lỗi thường gặp
-
Nhập chiều cao đơn vị cm nhưng lại tính như m.
Bài 7: Tách hàng chục và hàng đơn vị
Test case
-
Input:
47→ Output: chục 4, đơn vị 7
Lỗi thường gặp
-
Không xử lý số âm (nếu cần, dùng
abs(n)).
Bài 8: Đổi giây sang hh:mm:ss
Test case
-
Input:
3661→ Output:01:01:01
Lỗi thường gặp
-
Nhầm công thức tính phút/giây.
Nhóm B: If/Else cơ bản (Bài 9–18)
Bài 9: Kiểm tra chẵn/lẻ
Test case
-
10 → Chẵn
-
7 → Lẻ
Lỗi thường gặp
-
Dùng
=thay vì==trong điều kiện.
Bài 10: So sánh 2 số
Bài 11: Tìm số lớn nhất trong 3 số
Bài 12: Kiểm tra năm nhuận
Test case
-
2000 → nhuận
-
1900 → không nhuận
-
2024 → nhuận
Bài 13: Xếp loại theo điểm trung bình
Bài 14: Giải phương trình bậc nhất ax + b = 0
Bài 15: Kiểm tra tam giác hợp lệ
Bài 16: Phân loại tam giác (đều/cân/thường)
Bài 17: Tính tiền điện theo bậc (ví dụ đơn giản)
Bài 18: Nguyên âm hay phụ âm (có kiểm tra hợp lệ)
Nhóm C: Vòng lặp (Bài 19–30)
Bài 19: Tính tổng 1..n
Bài 20: Tính n! (giai thừa)
Bài 21: In bảng cửu chương của n
Bài 22: Đếm số chữ số của một số nguyên
Bài 23: Đảo ngược số nguyên
Bài 24: Kiểm tra số nguyên tố
Bài 25: Liệt kê các số nguyên tố ≤ n
Bài 26: Tìm UCLN (GCD) – Euclid
Bài 27: Tìm BCNN (LCM)
Bài 28: Tính tổng các chữ số
Bài 29: In dãy Fibonacci n phần tử
Bài 30: Tìm số hoàn hảo ≤ n
Nhóm D: Chuỗi (Bài 31–38)
Bài 31: Đếm số ký tự trong chuỗi
Bài 32: Đếm nguyên âm
Bài 33: Kiểm tra chuỗi đối xứng
Bài 34: Chuẩn hóa họ tên
Bài 35: Đếm số từ
Bài 36: Ký tự xuất hiện nhiều nhất
Bài 37: Loại bỏ chữ số trong chuỗi
Bài 38: Mã hóa Caesar dịch 3 ký tự
Nhóm E: List/Tuple (Bài 39–44)
Bài 39: Tính tổng list
Bài 40: Max/Min
Bài 41: Sắp xếp tăng/giảm
Bài 42: Loại bỏ trùng (giữ thứ tự)
Bài 43: Tách chẵn/lẻ
Bài 44: Phần tử xuất hiện nhiều nhất
Nhóm F: Dict/Set (Bài 45–47)
Bài 45: Đếm tần suất từ trong câu
Bài 46: Gộp 2 dict (cộng giá trị nếu trùng key)
Bài 47: Giao và hợp của 2 set
Nhóm G: Hàm (Bài 48–49)
Bài 48: Hàm kiểm tra số nguyên tố
Bài 49: Hàm tính GCD
Nhóm H: Mini Project (Bài 50)
Bài 50: Quản lý danh sách điểm
Test case
-
Input:
3 5 7.5 10 -
Output:
-
Điểm TB: 6.38
-
Cao nhất: 10
-
Thấp nhất: 3
-
Số điểm >= 5: 3
-
Lỗi thường gặp
-
Không xử lý list rỗng.
-
Nhập ký tự chữ gây lỗi ép kiểu.
Câu hỏi thường gặp (FAQ)
Người mới học Python nên làm bao nhiêu bài tập là đủ?
Khoảng 50–100 bài cơ bản là đủ để bạn vững nền. Quan trọng là bạn làm lại bài sai và thử biến thể.
Có nên chép lời giải không?
Không nên chép ngay. Hãy tự làm trước, rồi xem lời giải để sửa tư duy, sau đó đóng lại và viết lại.
Làm sao biết code đúng khi luyện tập?
Hãy tạo test case gồm trường hợp bình thường và trường hợp biên (0, âm, chuỗi rỗng, list rỗng…). So sánh output mong đợi với output thực tế.
Học Python cơ bản theo thứ tự nào để không bị loạn?
Hãy theo lộ trình: nhập xuất → if/else → vòng lặp → chuỗi → list/dict → hàm → mini project.
Vì sao input() cần ép kiểu?
Vì input() trả về chuỗi. Nếu không ép kiểu, bạn sẽ nối chuỗi thay vì cộng số.