🎓 Xây dựng mini project Python: Quản lý học sinh bằng List & Dictionary
Đây là bài tổng hợp dành cho học sinh lớp 10 sau khi đã học xong List – Tuple – Dictionary. Chúng ta sẽ cùng xây dựng một chương trình quản lý học sinh nhỏ gọn giúp lưu trữ, hiển thị và tìm kiếm thông tin — một bài thực hành cực kỳ bổ ích để kết thúc học kỳ.
I. Mục tiêu của dự án
- 📋 Biết cách lưu danh sách nhiều học sinh bằng List chứa Dictionary.
- 🔍 Biết cách thêm, in, tìm kiếm và xóa học sinh.
- 🧮 Ứng dụng các kỹ năng đã học: biến, vòng lặp, hàm, cấu trúc dữ liệu.
- 💾 Giúp học sinh rèn tư duy tổ chức dữ liệu như một lập trình viên thực thụ.
II. Cấu trúc dữ liệu được sử dụng
Mỗi học sinh sẽ được lưu trong một dictionary với 3 thông tin chính:
{
"ten": "An",
"tuoi": 16,
"lop": "10A1"
}
Danh sách toàn bộ học sinh là một list chứa nhiều dictionary như trên:
ds_hocsinh = [
{"ten":"An","tuoi":16,"lop":"10A1"},
{"ten":"Bình","tuoi":15,"lop":"10A2"}
]
III. Viết chương trình quản lý học sinh (cơ bản)
🔹 Code đầy đủ:
# Mini Project Python: Quản lý học sinh
ds_hs = []
def them_hocsinh():
ten = input("Nhập tên học sinh: ")
tuoi = int(input("Nhập tuổi: "))
lop = input("Nhập lớp: ")
hs = {"ten": ten, "tuoi": tuoi, "lop": lop}
ds_hs.append(hs)
print("✅ Đã thêm học sinh!\n")
def in_ds():
print("\n--- DANH SÁCH HỌC SINH ---")
for i, hs in enumerate(ds_hs, 1):
print(f"{i}. {hs['ten']} - {hs['tuoi']} tuổi - Lớp {hs['lop']}")
print("--------------------------\n")
def tim_kiem():
ten_tim = input("Nhập tên cần tìm: ")
for hs in ds_hs:
if hs["ten"].lower() == ten_tim.lower():
print("🔍 Tìm thấy:", hs)
return
print("❌ Không tìm thấy học sinh!\n")
def xoa_hs():
ten_xoa = input("Nhập tên cần xóa: ")
for hs in ds_hs:
if hs["ten"].lower() == ten_xoa.lower():
ds_hs.remove(hs)
print("🗑️ Đã xóa thành công!\n")
return
print("❌ Không tìm thấy để xóa!\n")
# Chương trình chính
while True:
print("----- MENU -----")
print("1. Thêm học sinh")
print("2. In danh sách")
print("3. Tìm kiếm học sinh")
print("4. Xóa học sinh")
print("0. Thoát")
chon = input("Chọn chức năng: ")
if chon == "1":
them_hocsinh()
elif chon == "2":
in_ds()
elif chon == "3":
tim_kiem()
elif chon == "4":
xoa_hs()
elif chon == "0":
print("👋 Kết thúc chương trình.")
break
else:
print("Vui lòng chọn đúng chức năng!\n")
IV. Giải thích logic hoạt động
- Danh sách
ds_hslà “kho dữ liệu” chứa nhiều dictionary học sinh. - Chức năng “Thêm học sinh” tạo dictionary mới và đưa vào List.
- “In danh sách” duyệt toàn bộ list để hiển thị dữ liệu.
- “Tìm kiếm” và “Xóa” duyệt list, so sánh tên (dạng không phân biệt hoa thường).
- Vòng lặp
while Truegiúp chương trình hoạt động liên tục cho đến khi chọn “Thoát”.
V. Gợi ý mở rộng cho học sinh khá – giỏi
- ✅ Thêm chức năng sửa thông tin học sinh.
- ✅ Thêm điểm trung bình và xếp loại (Dựa trên if – else).
- ✅ Lưu và đọc dữ liệu từ file
.txthoặc.csv. - ✅ Tạo menu con cho từng phần (Quản lý – Tìm kiếm – Báo cáo).
💡 Dành cho thầy cô: Có thể giao bài này làm “Dự án nhóm cuối kỳ” cho học sinh lớp 10 – giúp các em vừa luyện Python vừa học tinh thần làm việc nhóm.
🎯 Kết luận
Mini project “Quản lý học sinh bằng List & Dictionary” là một ví dụ điển hình giúp học sinh ứng dụng tổng hợp tất cả kỹ năng đã học: nhập xuất, điều kiện, vòng lặp và cấu trúc dữ liệu. Thông qua bài này, học sinh không chỉ rèn kỹ năng lập trình mà còn học được tư duy tổ chức dữ liệu – nền tảng quan trọng cho các môn học Tin học 11 và 12 sau này.
💡 Gợi ý thêm: Sau khi hoàn thiện chương trình, hãy cho học sinh chạy thử trên Replit hoặc Trinket để trình bày sản phẩm của mình trước lớp!
🪶 Bài viết: Rcom Dăm Yi | Blog: tuhocxyz.blogspot.com
📅 Cập nhật: Tháng 11 / 2025
📌 Danh sách bình luận