Chỉnh sửa lại chương trình để người dùng có thể: a)Tra cứu các đầu điểm

Chỉnh sửa lại chương trình để người dùng có thể:

a)Tra cứu các đầu điểm kiểm tra theo STT (số thứ tự) của học sinh. Quy ước số thứ tự bắt đầu từ 1. Nếu người dùng nhập STT lớn hơn số lượng học sinh thì chương trình thông báo STT không hợp lệ và yêu cầu nhập lại.

b)Tra cứu điểm kiểm tra cụ thể lần thứ n của một học sinh theo STT. Nếu n và STT không hợp lệ chương trình cần thông báo và yêu cầu nhập lại.

Trả lời

marks = []

line = input("Hãy nhập các điểm kiểm tra cách nhau bởi dấu cách: ")

marks = [float(x) for x in line.split()]

total = 0

min_mark = marks[0]

max_mark = marks[0]

num_students = len(marks)

 

for m in marks:

  total += m

    if min_mark > m:

        min_mark = m

    if max_mark < m:

        max_mark = m

print("Điểm trung bình: ", total / num_students)

print("Điểm cao nhất: ", max_mark)

print("Điểm thấp nhất: ", min_mark)

while True:

    stt = int(input("Nhập vào STT (1 <= STT <= số lượng học sinh): "))

    if stt < 1 or stt > num_students:

        print("STT không hợp lệ. Vui lòng nhập lại!")

    else:

        print("Điểm của học sinh có STT", stt, "là:", marks[stt - 1])

        break

while True:

    stt = int(input("Nhập vào STT của học sinh: "))

    if stt < 1 or stt > num_students:

        print("STT không hợp lệ. Vui lòng nhập lại!")

    else:

        n = int(input("Nhập vào số lần kiểm tra cần tra cứu (1 <= n <= số lượng điểm kiểm tra): "))

        if n < 1 or n > len(marks):

            print("N không hợp lệ. Vui lòng nhập lại!")

        else:

            print("Điểm kiểm tra lần thứ", n, "của học sinh có STT", stt, "là:", marks[stt - 1])

            break