1. Nhập Xuất Cơ Bản & Tính Toán
| STT | Tên Bài Tập |
| Bài 1.1 | Viết chương trình xuất ra màn hình nhiệt độ ($^\circ K$) tương ứng khi nhập vào nhiệt độ ($^\circ C$). |
| Bài 1.2 | Viết chương trình in ra màn hình phần nguyên và phần dư của $m$ chia cho $n$ (với $m, n$ nguyên dương). |
| Bài 1.3 | Viết chương trình tính diện tích hình tròn (với bán kính nhập vào). |
| Bài 1.4 | Viết chương trình tính vận tốc của vật khi rơi tự do từ độ cao $h$. |
| Bài 1.5 | Viết chương trình tính diện tích hình thang (với đáy lớn, đáy bé, chiều cao nhập vào). |
| Bài 1.6 | Viết chương trình tính và xuất ra màn hình chu vi và diện tích của tam giác (với độ dài 3 cạnh nhập vào). |
| Bài 1.7 | Tính chu vi và diện tích hình chữ nhật khi biết chiều dài và chiều rộng. |
| Bài 1.8 | Chuyển đổi số giây thành định dạng giờ, phút, giây. |
| Bài 1.9 | Viết chương trình nhập vào một số tiền, xuất ra số lượng các mệnh giá tiền cần thiết. |
| Bài 1.10 | Tính giá trị trung bình cộng của ba số thực nhập vào. |
| Bài 1.11 | Tính tổng của một dãy số có công sai $d$ (cấp số cộng). |
| Bài 1.12 | Chuyển đổi một số nguyên hệ thập phân sang hệ nhị phân (Output chuỗi). |
| Bài 1.13 | Tính khoảng cách giữa hai điểm $A(x_1, y_1)$ và $B(x_2, y_2)$ trong mặt phẳng tọa độ. |
| Bài 1.14 | Tính tiền điện phải trả dựa trên số kWh tiêu thụ theo công thức bậc thang. |
| Bài 1.15 | Tính diện tích tam giác trong mặt phẳng tọa độ khi biết tọa độ 3 đỉnh. |
Tham khảo thêm: https://tiilaz.com/lap-trinh-python/lap-trinh-python-co-ban/bai-tap-thuc-hanh-lap-trinh-python-nhap-xuat-va-tinh-toan/
2. Cấu Trúc Rẽ Nhánh
| STT | Tên Bài Tập |
| Bài 2.1 | Kiểm tra và xuất ra màn hình số nguyên dương $n$ là số chẵn hay số lẻ. |
| Bài 2.2 | Viết chương trình tính giá trị của biểu thức $f(x,y)$. |
| Bài 2.3 | Viết chương trình cho biết năm bất kỳ có phải năm nhuận hay không. |
| Bài 2.4 | Viết chương trình xuất ra màn hình xếp loại học lực của học sinh theo giá trị điểm. |
| Bài 2.5 | Viết chương trình giải phương trình bậc nhất $ax + b = 0$. |
| Bài 2.6 | Viết chương trình giải phương trình bậc hai $ax^2 + bx + c = 0$ ($a \ne 0$). |
| Bài 2.7 | Viết chương trình kiểm tra xem điểm $M(x,y)$ có nằm trong hình tròn tâm $I(a,b)$ và bán kính $R$. |
| Bài 2.8 | Viết chương trình giải phương trình bậc hai $ax^2 + bx + c = 0$ (bao gồm cả trường hợp $a=0$). |
| Bài 2.9 | Kiểm tra bộ ba số $a, b, c$ vừa nhập vào là bộ ba cạnh của loại tam giác nào (thường, vuông, cân, vuông cân, đều, hay không phải tam giác). |
| Bài 2.10 | Xác định một ký tự nhập vào là chữ cái hoa, chữ cái thường, chữ số hay ký tự đặc biệt. |
| Bài 2.11 | Kiểm tra một năm có phải là năm nhuận hay không và in ra số ngày của tháng 2. |
| Bài 2.12 | Xác định ba số $a, b, c$ có thể là độ dài ba cạnh của một tam giác hay không. |
| Bài 2.13 | Viết chương trình tìm số lớn nhất (Max) trong ba số $a, b, c$. |
| Bài 2.14 | Phân loại tam giác là nhọn, vuông hay tù khi biết độ dài 3 cạnh. |
| Bài 2.15 | Kiểm tra xem một năm có 365 hay 366 ngày. |
| Bài 2.16 | Xác định tọa độ điểm M(x,y) nằm trong góc phần tư thứ mấy của hệ trục tọa độ. |
| Bài 2.17 | Kiểm tra 3 số nguyên $a, b, c$ có tạo thành bộ ba Pytago hay không. |
| Bài 2.18 | Xác định ngày tiếp theo và ngày trước đó của một ngày nhập vào (ngày, tháng, năm). |
3. Cấu Trúc Lặp
| STT | Tên Bài Tập |
| Bài 3.1 | Viết chương trình tính tổng các số từ $1$ đến $n$. |
| Bài 3.2 | Viết chương trình tính tổng của bình phương các số lẻ từ $1$ đến $n$. |
| Bài 3.3 | Viết chương trình in bảng cửu chương ra màn hình. |
| Bài 3.4 | Xuất ra màn hình ước chung lớn nhất và bội chung nhỏ nhất của 2 số $m$ và $n$. |
| Bài 3.5 | Viết chương trình kiểm tra số nguyên dương $n$ có phải là số hoàn hảo hay không. |
| Bài 3.6 | Viết chương trình đếm các số nguyên tố nhỏ hơn $n$. |
| Bài 3.7 | Viết chương trình tính tổng chuỗi $S = \frac{1}{a} + \frac{1}{a+1} + \dots$ cho đến khi $\frac{1}{a+n} < 0,0001$. |
| Bài 3.8 | Viết chương trình giải bài toán cổ: Trăm trâu trăm bó cỏ. |
| Bài 3.9 | Phân tích số nguyên dương thành tích các thừa số nguyên tố. |
| Bài 3.10 | Kiểm tra một số nguyên dương có phải là số Palindrome (số đối xứng) hay không. |
| Bài 3.11 | Tính tổng các chữ số của một số nguyên dương $n$. |
| Bài 3.12 | Tìm tất cả các ước số của một số nguyên dương $n$. |
| Bài 3.13 | Tính giá trị của $x^n$ (lũy thừa) mà không dùng hàm có sẵn. |
| Bài 3.14 | Vẽ các hình học cơ bản bằng ký tự (*) sử dụng vòng lặp (ví dụ: hình vuông, tam giác). |
| Bài 3.15 | Tìm số đảo ngược của một số nguyên dương $n$. |
| Bài 3.16 | Đếm số lượng chữ số của một số nguyên dương $n$. |
| Bài 3.17 | Kiểm tra một số có phải là số Armstrong (tổng lập phương các chữ số bằng chính nó) hay không. |
| Bài 3.18 | In ra tam giác Floyd (Floyd’s Triangle) với $n$ dòng. |
| Bài 3.19 | Viết chương trình in ra $n$ số Fibonaxi đầu tiên mà không dùng mảng. |
4. Chương Trình Con (Hàm)
| STT | Tên Bài Tập |
| Bài 4.1 | Viết chương trình có sử dụng hàm lambda để trả về số giây tương ứng (giờ, phút, giây). |
| Bài 4.2 | Viết chương trình tính tổng $S = 1! + 2! + \dots + n!$. |
| Bài 4.3 | Viết chương trình để in ra màn hình các số nguyên tố từ $1$ đến $n$. |
| Bài 4.4 | Viết chương trình in ra số nguyên tố lớn nhất nhỏ hơn $n$. |
| Bài 4.5 | Viết chương trình giải bài toán Tháp Hà Nội. |
| Bài 4.6 | Viết chương trình sắp xếp tên học sinh theo bảng chữ cái. |
| Bài 4.7 | Xây dựng hàm kiểm tra một số có phải là số chính phương hay không. |
| Bài 4.8 | Viết hàm tìm giá trị nhỏ nhất (Min) trong một mảng số nguyên. |
| Bài 4.9 | Sử dụng hàm đệ quy để tính số Fibonaxi thứ $n$. |
| Bài 4.10 | Xây dựng hàm để kiểm tra tính hợp lệ của địa chỉ Email. |
| Bài 4.11 | Xây dựng hàm kiểm tra số hoàn hảo. |
| Bài 4.12 | Viết hàm tìm chữ số lớn nhất trong một số nguyên $n$. |
| Bài 4.13 | Xây dựng hàm chuyển đổi nhiệt độ từ $^\circ C$ sang $^\circ F$ và ngược lại. |
| Bài 4.14 | Viết hàm đệ quy để tính tổng các số từ $1$ đến $n$. |
| Bài 4.15 | Xây dựng hàm để kiểm tra mật khẩu có độ mạnh an toàn (ví dụ: tối thiểu 8 ký tự, có chữ hoa, chữ thường và chữ số). |
5. Kiểu Dữ Liệu Xâu (Chuỗi)
| STT | Tên Bài Tập |
| Bài 5.1 | Viết chương trình “chuẩn hóa” họ và tên. |
| Bài 5.2 | Viết chương trình xóa đi các ký tự số trong xâu. |
| Bài 5.3 | Viết chương trình xóa các ký tự giống nhau liền kề trong xâu. |
| Bài 5.4 | Chèn xâu $s_1$ vào giữa xâu $s_2$. |
| Bài 5.5 | Đếm xem trong danh sách có bao nhiêu bạn tên là “Hương”. |
| Bài 5.6 | In thông báo tên và họ đệm của người dùng. |
| Bài 5.7 | Thông báo số bạn có cùng một tên trong danh sách học sinh. |
| Bài 5.8 | Đếm số lần xuất hiện của một ký tự trong một xâu. |
| Bài 5.9 | Đảo ngược thứ tự các từ trong một câu. |
| Bài 5.10 | Kiểm tra một xâu có phải là xâu Palindrome hay không. |
| Bài 5.11 | Mã hóa/Giải mã xâu theo phương pháp Caesar Cipher cơ bản. |
| Bài 5.12 | Đếm số từ trong một câu nhập vào. |
| Bài 5.13 | Loại bỏ khoảng trắng thừa (nhiều hơn một) trong xâu. |
| Bài 5.14 | Kiểm tra một xâu có phải là tên biến hợp lệ trong lập trình hay không. |
| Bài 5.15 | Viết chương trình chuẩn hóa số điện thoại (ví dụ: thêm mã vùng +84 nếu thiếu). |
| Bài 5.16 | Thay thế tất cả ký tự chữ thường trong xâu bằng ký tự chữ hoa và ngược lại. |
6. Kiểu Dữ Liệu Tệp (File I/O)
| STT | Tên Bài Tập |
| Bài 6.1 | Viết chương trình tính tổng các số lẻ trong tệp DATA.INP và xuất ra tệp DATA.OUT. |
| Bài 6.2 | Viết chương trình lọc các số ở văn bản trong tệp DATA.INP và xuất ra tệp DATA.OUT. |
| Bài 6.3 | Đếm số dòng, số từ và số ký tự trong một tệp văn bản. |
| Bài 6.4 | Đọc tệp chứa thông tin sinh viên và ghi lại danh sách sinh viên đạt điểm Giỏi ra tệp mới. |
| Bài 6.5 | Đọc và sắp xếp các số nguyên trong tệp INPUT.TXT rồi ghi ra OUTPUT.TXT. |
| Bài 6.6 | Đọc tệp và tìm từ xuất hiện nhiều nhất trong tệp văn bản. |
| Bài 6.7 | Đọc tệp chứa các phân số và ghi phân số rút gọn ra tệp mới. |
| Bài 6.8 | Xóa dòng thứ $k$ trong một tệp văn bản. |
| Bài 6.9 | Nối nội dung hai tệp văn bản $A$ và $B$ vào một tệp $C$. |
| Bài 6.10 | Đọc tệp chứa danh sách điểm và tính điểm trung bình của tất cả sinh viên. |
7. Kiểu Dữ Liệu Mảng (List)
| STT | Tên Bài Tập |
| Bài 7.1 | Xuất ra màn hình tổng của các số lẻ trong mảng $n$ số nguyên dương. |
| Bài 7.2 | Tìm số lớn nhất trong dãy số bất kỳ. |
| Bài 7.3 | Viết chương trình dùng phương pháp list comprehension để tạo các list (bội của 3, số chính phương). |
| Bài 7.4 | Kiểm tra dãy số nguyên bất kỳ có tạo thành cấp số cộng hay không. |
| Bài 7.5 | Xuất ra màn hình dãy số Fibonaxi gồm $n$ số. |
| Bài 7.6 | Đếm số nguyên tố trong dãy số vừa nhập. |
| Bài 7.7 | Viết chương trình tính tổng của 2 ma trận số nguyên kích thước $m \times n$. |
| Bài 7.8 | Xuất ra màn hình thông tin của từng người đã nhập (họ tên, tuổi, giới tính, quê quán). |
| Bài 7.9 | Sắp xếp mảng số nguyên theo thứ tự tăng dần (bubble sort/selection sort cơ bản). |
| Bài 7.10 | Tìm kiếm một giá trị $k$ trong mảng (linear search). |
| Bài 7.11 | Tính tổng các phần tử trên đường chéo chính và đường chéo phụ của ma trận vuông. |
| Bài 7.12 | Nhân hai ma trận $A$ và $B$. |
| Bài 7.13 | Tìm phần tử lớn thứ hai trong mảng. |
| Bài 7.14 | Chèn một phần tử vào vị trí bất kỳ trong mảng. |
| Bài 7.15 | Xoá tất cả các phần tử có giá trị $k$ khỏi mảng. |
| Bài 7.16 | Đảo ngược thứ tự các phần tử trong mảng. |
| Bài 7.17 | Kiểm tra ma trận đối xứng (Symmetric Matrix). |
| Bài 7.18 | Tìm tổng hàng lớn nhất và tổng cột lớn nhất trong ma trận. |
8. Kiểu Dữ Liệu Từ Điển (Dictionary)
| STT | Tên Bài Tập |
| Bài 8.1 | Xuất ra màn hình số lần lặp của các từ đơn trong xâu vừa nhập. |
| Bài 8.2 | Tạo từ điển lưu trữ thông tin sinh viên. |
| Bài 8.3 | Sắp xếp các mục (items) của từ điển dựa trên giá trị (value) của chúng. |
| Bài 8.4 | Viết chương trình dịch một câu tiếng Anh đơn giản dựa vào từ điển đã khai báo. |
| Bài 8.5 | Đếm tần suất xuất hiện của các ký tự trong một xâu (Output là từ điển). |
| Bài 8.6 | Hợp nhất (Merge) hai từ điển thành một từ điển mới. |
| Bài 8.7 | Lấy ra tất cả khóa (keys) của một từ điển và sắp xếp chúng theo bảng chữ cái. |
| Bài 8.8 | Xây dựng chương trình “Mini-Database” lưu trữ thông tin sản phẩm (ID, Tên, Giá) trong một từ điển lớn. |
| Bài 8.9 | Xóa các khóa trùng lặp giữa hai từ điển (nếu có) khỏi từ điển thứ nhất. |
9. Kiểu Dữ Liệu Tập Hợp (Set)
| STT | Tên Bài Tập |
| Bài 9.1 | Xuất ra màn hình các số có đồng thời trong cả 2 xâu có ký tự số. |
| Bài 9.2 | Tìm và in ra các phần tử chỉ xuất hiện một lần (unique elements) trong một danh sách. |
| Bài 9.3 | Tìm hợp và giao của hai tập hợp số nguyên. |
| Bài 9.4 | Loại bỏ các phần tử trùng lặp khỏi một danh sách ban đầu. |
| Bài 9.5 | Tìm ra các phần tử khác nhau hoàn toàn (Symmetric Difference) giữa hai tập hợp. |
| Bài 9.6 | Kiểm tra xem một tập hợp có phải là tập con (Subset) của tập hợp khác hay không. |
| Bài 9.7 | Đếm số lượng các nguyên âm và phụ âm duy nhất trong một xâu. |
| Bài 9.8 | Tạo tập hợp các số chẵn từ 1 đến 100. |
| Bài 9.9 | Tìm các phần tử chung (Intersection) của ba tập hợp. |
10. Hướng Đối Tượng (OOP)
| STT | Tên Bài Tập |
| Bài 10.1 | Xây dựng lớp Tam Giác kế thừa từ lớp Đa Giác. |
| Bài 10.2 | Xây dựng lớp HocSinh với phương thức tính Điểm trung bình. |
| Bài 10.3 | Xây dựng lớp PhanSo với các phương thức toán học và rút gọn phân số. |
| Bài 10.4 | Xây dựng lớp HinhTron và lớp HinhTru để minh họa mối quan hệ Thành phần (Composition). |
| Bài 10.5 | Xây dựng lớp XeHoi (Car) với thuộc tính toc_do và phương thức tang_toc(), giam_toc(). |
| Bài 10.6 | Xây dựng lớp SoPhuc (Complex Number) và định nghĩa phương thức cộng hai số phức. |
| Bài 10.7 | Xây dựng lớp NhanVien và tính lương cuối cùng sau khi trừ thuế (minh họa tính Encapsulation). |
| Bài 10.8 | Xây dựng lớp Animal và các lớp con Dog, Cat kế thừa (minh họa tính Kế thừa). |
| Bài 10.9 | Định nghĩa phương thức đặc biệt (__str__) cho lớp Diem2D để in tọa độ đẹp mắt. |