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