Tiếp tục chương trình nhập của Nhiệm vụ 2 ...

LUYỆN TẬP 

Câu 1: Tiếp tục chương trình nhập của Nhiệm vụ 2, sử dụng định nghĩa hàm cacGiaTriLonNhat (C, k) ở Nhiệm vụ 3, viết thêm các lệnh để hiển thị danh sách các học sinh có điểm số nằm trong k điểm số lớn nhất nhằm giải quyết vấn đề ở, KHỞI ĐỘNG.

Hướng dẫn: Duyệt bảng điểm để tạo danh sách c là cột điểm số (cột 2) của bảng điểm. Sau đó, tạo danh sách B là danh sách có k điểm số lớn nhất bằng cách gọi hàm cacGiaTriLonNhat (C, k) ở Nhiệm vụ 3. Cuối cùng, duyệt bảng điểm để hiển thị các học sinh có điểm số nằm trong danh sách B (là k điểm số lớn nhất).


*Chương trình tham khảo:

# Dữ liệu điểm của học sinh

students = [

    ("Nguyen Van A", 8.5),

    ("Tran Thi B", 9.0),

    ("Le Van C", 7.5),

    ("Pham Thi D", 9.5),

    ("Hoang Van E", 8.0),

    ("Nguyen Van F", 9.2),

]

# Hàm tìm k điểm số lớn nhất

def cacGiaTriLonNhat(C, k):

    return sorted(set(C), reverse=True)[:k]

# Tạo danh sách điểm số

C = [score for name, score in students]

 

# Số lượng điểm số lớn nhất cần tìm

k = 5

 

# Lấy k điểm số lớn nhất

B = cacGiaTriLonNhat(C, k)

 

# Hiển thị các học sinh có điểm số nằm trong k điểm số lớn nhất

print(f"Các học sinh có điểm số nằm trong {k} điểm số lớn nhất:")

for name, score in students:

    if score in B:

        print(f"{name}: {score}")


Bình luận

Giải bài tập những môn khác