Câu hỏi:
11/07/2024 84Sửa lại phần nhập dữ liệu hai học sinh: sẽ nhập trực tiếp tên hai học sinh, kiểm tra các tên này có nhập đúng không và thực hiện yêu cầu như trong chương trình trên.
Sách mới 2k7: Tổng ôn Toán, Lí, Hóa, Văn, Sử, Địa…. kỳ thi tốt nghiệp THPT Quốc gia 2025, đánh giá năng lực (chỉ từ 110k).
Quảng cáo
Trả lời:
Để sửa lại phần nhập dữ liệu để nhập trực tiếp tên hai học sinh và kiểm tra tính hợp lệ của chúng, chúng ta có thể thực hiện như sau:
Bài mẫu tổng quát gợi ý:
def input_student_names():
while True:
name1 = input("Nhập tên học sinh thứ nhất: ")
name2 = input("Nhập tên học sinh thứ hai: ")
if name1.strip() == "" or name2.strip() == "":
print("Tên học sinh không được để trống. Vui lòng nhập lại.")
elif name1 == name2:
print("Hai học sinh không thể có cùng tên. Vui lòng nhập lại.")
else:
return name1, name2
# Hàm tính tổng điểm trung bình
def calculate_average_score(score_list):
return sum(score_list) / len(score_list)
# Hàm in thông tin học sinh
def print_student_info(name, scores):
avg_score = calculate_average_score(scores)
print(f"Học sinh {name}:")
print(f" - Điểm Toán: {scores[0]}")
print(f" - Điểm Văn: {scores[1]}")
print(f" - Điểm Anh: {scores[2]}")
print(f"Điểm trung bình: {avg_score:.2f}")
# Hàm nhập điểm cho học sinh
def input_student_scores(name):
scores = []
for subject in ["Toán", "Văn", "Anh"]:
while True:
try:
score = float(input(f"Nhập điểm {subject} của học sinh {name}: "))
if score < 0 or score > 10:
print("Điểm phải nằm trong khoảng từ 0 đến 10. Vui lòng nhập lại.")
else:
scores.append(score)
break
except ValueError:
print("Điểm phải là một số thực. Vui lòng nhập lại.")
return scores
# Hàm chính
def main():
print("Nhập thông tin của hai học sinh:")
name1, name2 = input_student_names()
scores1 = input_student_scores(name1)
scores2 = input_student_scores(name2)
print("\nThông tin hai học sinh sau khi nhập:")
print_student_info(name1, scores1)
print()
print_student_info(name2, scores2)
if __name__ == "__main__":
main()
- Trong phiên bản này, chúng ta sử dụng một vòng lặp while để yêu cầu người dùng nhập tên hai học sinh. Sau đó, kiểm tra tính hợp lệ của tên đó (không được để trống và hai học sinh không thể có cùng tên). Nếu các tên được nhập đúng cách, chúng ta trả về tên của hai học sinh và tiếp tục với việc nhập điểm và in thông tin học sinh như bình thường.
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Trong bài thực hành trước chúng ta đã được ôn tập và giải một số bài toán có áp dụng thuật toán duyệt đồ thị theo chiều sâu. Còn về thuật toán duyệt theo chiều rộng em có biết gì về các ứng dụng thực tế của bài toán này không?
Câu 2:
Câu 3:
Thiết lập hàm printpath(s,t) không đệ quy có tính năng tương tự hàm cùng tên trong chương trình trên.
Câu 4:
263 câu Trắc nghiệm tổng hợp ôn thi tốt nghiệp THPT môn Tin học Chủ đề F. Giải quyết vấn đề với sự trợ giúp của máy tính có đáp án
15 câu Trắc nghiệm Tin học 12 KNTT Bài 7: HTML và cấu trúc trang web
Đề thi học kì 1 Tin học 12 Kết nối tri thức có đáp án- Đề 1
15 câu Trắc nghiệm Tin học 12 KNTT Bài 10: Tạo liên kết
15 câu Trắc nghiệm Tin học 12 KNTT Bài 11: Chèn tệp tin đa phương tiện và khung nội tuyến vào trang web
15 câu Trắc nghiệm Tin học 12 KNTT Bài 9: Tạo danh sách, bảng
15 câu Trắc nghiệm Tin học 12 KNTT Bài 8: Định dạng văn bản
15 câu Trắc nghiệm Tin học 12 Cánh diều Bài 1: Làm quen với ngôn ngữ đánh dấu siêu văn bản
về câu hỏi!