python-007Đọc toàn bộ đề miễn phí

Thống kê điểm số và phân loại học viên

Hệ thống học tập của AI Empire Academy kết thúc học kỳ cần tổng kết báo cáo thành tích học tập của một lớp học. Mỗi học viên được biểu diễn bằng một từ điển có cấu trúc:

PythonTrung bình25 phút

Tiến độ của tôi ở bài này

Điểm được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

dictionarieslists of dictsaggregationdata processing

Kiến thức tiên quyết: dict access, iteration, floating point.

Nội dung đề bài

Mục tiêu kiến thức

  • Làm việc với cấu trúc dữ liệu thực tế: danh sách chứa các từ điển list[dict].
  • Tính toán các chỉ số tổng hợp: tổng số, điểm trung bình làm tròn, phần tử lớn nhất.
  • Gom nhóm và đếm tần suất phân phối theo thang điểm chuẩn.

Mô tả bài toán

Hệ thống học tập của AI Empire Academy kết thúc học kỳ cần tổng kết báo cáo thành tích học tập của một lớp học. Mỗi học viên được biểu diễn bằng một từ điển có cấu trúc: {"id": str, "name": str, "score": float}.

Hãy viết hàm grade_statistics(students: list[dict]) -> dict nhận vào danh sách học viên và trả về từ điển báo cáo có cấu trúc sau:

{
    "total_students": int,       # Tong so hoc vien
    "average_score": float,      # Diem trung binh, lam tron 2 chu so thap phan
    "highest_student": dict,     # Dict cua hoc vien co diem cao nhat (nguoi dau tien neu co hoa diem)
    "grade_distribution": {
        "XuatSac": int,          # score >= 9.0
        "Gioi": int,             # 8.0 <= score < 9.0
        "Kha": int,              # 6.5 <= score < 8.0
        "TrungBinh": int         # score < 6.5
    }
}

Quy tắc nghiệp vụ:

  • Nếu danh sách students rỗng, ném ra ngoại lệ ValueError("Danh sach hoc vien rong").
  • Điểm hợp lệ của mỗi học viên nằm trong đoạn [0.0, 10.0].

Input

Danh sách students chứa các từ điển học viên.

Output

Từ điển chứa các trường thống kê như đặc tả ở trên.

Ràng buộc

  • Số lượng học viên N: 0 ≤ N ≤ 104.
  • 0.0 ≤ score ≤ 10.0.
  • Thời gian chạy tối đa: 1000ms.
  • Giới hạn bộ nhớ: 256MB.

Ví dụ 1

Input

students = [
    {"id": "SV01", "name": "Nam", "score": 8.5},
    {"id": "SV02", "name": "Hoa", "score": 9.5},
    {"id": "SV03", "name": "Binh", "score": 6.0}
]

Output

{
    "total_students": 3,
    "average_score": 8.0,
    "highest_student": {"id": "SV02", "name": "Hoa", "score": 9.5},
    "grade_distribution": {
        "XuatSac": 1,
        "Gioi": 1,
        "Kha": 0,
        "TrungBinh": 1
    }
}
3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.